Как сохранить get запрос в бд Laravel?
Написал небольшой метод, который должен добавлять комменты, к конкретным записям в бд.
Создал таблицу comments с полями: comment_id - idшник коммента author_id - id перца, который комментит post_id - idшник поста, который комментят comment - сам коммент
Сам метод:
public function store(Request $request)
{
$comment = new Comment();
$comment->comment = $request->comment;
$comment->author_id = \Auth::user()->id;
$comment->post_id = $request->post;
$comment->save();
return redirect()->back()->with('success', 'Комментарий добавлен');
}
Я хочу, что бы в базу, сохранялся id поста, который комментируют, id поста беру из get запроса. Зашел в свой blade шаблон, и написал там {{ request()->post }}, в итоге у меня на экране отобразился id нужной записи, пытаюсь сохранить этот id'шник строкой $comment->post_id = $request->post;, в итоге получаю ошибку, о том что post_id null Column 'post_id' cannot be null
Как мне правильно сделать?
Ответы (2 шт):
Если я все правильно понял, то в POST запросе из формы в шаблоне не приходит вот эта строчка
$comment->post_id = $request->post;
Если это так, то решение 1. В blade шаблоне - добавляете в форму, которая отрпавляет данные, скрытое инпут поле с вашими данными ( request()->post ) :
<input type="hidden" value={{ request()->post }} name='post_id'>
В store методе контроллера достаете эти данные из $request
$comment->post_id = ($request->has('post_id')) ? $request->get('post_id') : null;