Итак, я пытаюсь создать новую строку в базе данных с помощью метода Eloquent create, но он не работает должным образом.
Это код моего контроллера.
$movie->review(request()->all() + ['user_id' => auth()->id()]);
А вот и моя модель Кино
class Movie extends Model
{
protected $fillable = [
'id', 'title', 'poster_path'
];
public function reviews()
{
return $this->hasMany(Review::class);
}
public function review($review)
{
$this->reviews()->create($review);
}
}
И да, я поместил movie_id в fillable в модели Review.
protected $fillable = [
'movie_id', 'user_id', 'heading', 'rating', 'comment'
];
Я проверил, правильно ли отправляет моя форма все данные, и это происходит.
"_token" => "..."
"movie_id" => "5"
"rating" => "7"
"heading" => "Test heading"
"comment" => "Test comment"
"user_id" => 1
И когда я проверяю базу данных, все устанавливается рядом с movie_id. Это ноль, и я понятия не имею, почему.