Массовое заполнение в Laravel
У меня есть следующий метод store, который записывает в бд поля
$post = new Post();
$post->title = $request->title;
$post->playlist = $request->playlist;
$post->img_link = $request->img_link;
$post->link = $request->link;
$post->author_id = \Auth::user()->id;
$post->save();
Хочу сократить его и сделать массовое заполнение, как в документации написано и вместо всего пишу
Post::create(['title', 'playlist', 'img_link', 'author_id' => \Auth::user()->id]);
Так же в модели указываю $fillable поля
protected $fillable = ['title', 'playlist', 'img_link', 'author_id'];
В результате меня просит ввести значение по умолчанию в title, playlist, img_link. Если я передаю значения, то всё работает, но мне необходимо что бы значения прилетали из request, как это сделать можно?
И еще вопрос, почитал про лучшие практики laravel, это сильно критично, если я не буду в дальнейшем использовать массовое заполнение?
Ответы (1 шт):
Автор решения: Alpha
→ Ссылка
Так вы здесь не заполняете поля значениями
Post::create(['title', 'playlist', 'img_link', 'author_id' => \Auth::user()->id]);
Стоит изменить на
Post::create(['title' => $request->title, 'playlist' => $request->playlist, 'img_link' => $request->img_link, 'author_id' => \Auth::user()->id])