Как сохранить 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 шт):

Автор решения: kwas

Попробуйте $request->input('post');

→ Ссылка
Автор решения: AlexZelenskiy

Если я все правильно понял, то в POST запросе из формы в шаблоне не приходит вот эта строчка

$comment->post_id = $request->post;

Если это так, то решение 1. В blade шаблоне - добавляете в форму, которая отрпавляет данные, скрытое инпут поле с вашими данными ( request()->post ) :

 <input type="hidden" value={{ request()->post }} name='post_id'>
  1. В store методе контроллера достаете эти данные из $request

    $comment->post_id = ($request->has('post_id')) ? $request->get('post_id') : null;

→ Ссылка