@semki096

Почему возникает ошибка в работе Eloquent?

$data = $request->only('rating', 'rateable_id', 'user_id', 'rateable_type');
        // создаст или обновит запись в модели Rating в зависимости от того 
        // было ли найдено в модели Rating поле user_id' равное $request->user_id'
        Rating::updateOrCreate(['user_id' => $request->user_id, 'rateable_id' => $request->rateable_id], $data);

Вот ошибка
SQLSTATE[HY000]: General error: 1364 Field 'rateable_id' doesn't have a default value (SQL: insert into `ratings` (`rating`, `updated_at`, `created_at`) values (4, 2017-11-22 09:54:53, 2017-11-22 09:54:53))


Насколько я понял запрос на запись не содержит всех полей, в частности 'rateable_id' . Почему, ведь я написал
Rating::updateOrCreate(['user_id' => $request->user_id, 'rateable_id' => $request->rateable_id], $data);
  • Вопрос задан
  • 146 просмотров
Пригласить эксперта
Ответы на вопрос 1
@yoda_code
Проверьте.
protected $fillable = [...]
В модели Rating. Поле, которое вы пытаетесь обновить или создать должно быть в этом массиве.
protected $fillable  = [
'rateable_id', 
...
]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы