Eloquent create говорит, что movie_id не существует, хотя и существует - PullRequest
2 голосов
/ 12 апреля 2019

Итак, я пытаюсь создать новую строку в базе данных с помощью метода 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. Это ноль, и я понятия не имею, почему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...