Intereting Posts
Как динамически задавать ключи массива в php Подождите, пока socket_write завершится, прежде чем писать снова. Конфигурация Laravel Redis PHP удаляет повторяющиеся значения из многомерного массива Сессия PHP слишком рано уничтожена в мобильных браузерах (браузерах) Как предоставить внешний параметр учетной записи при создании управляемой учетной записи в полосе с помощью php? Потерянное соединение с сервером MySQL при «считывании исходного пакета связи», системная ошибка: 0 Преобразование командной строки cURL в PHP cURL Как реализовать Redis в CodeIgniter? Отправка HTML-сообщения через PEAR при использовании аутентификации SMTP возвращает ошибку Вставка скребковых данных с использованием php curl в MySQL Лучший способ конвертировать веб-страницу в pdf-изображение Backbone.js Pushstate Routing и PHP Framework Router Получить идентификатор URL-адреса Преобразование .mp4 в .mp3 с использованием чистого PHP

Laravel updateOrCreate общее поле ошибки post_id не существует

У меня есть таблица представлений в базе данных, и я пытаюсь обновить запись в ней (или создать ее, если она еще не существует) с помощью этого кода:

$ar = ['number_of_views' => $number_of_views['number_of_views']+1, 'post_id' => $post->id]; App\View::updateOrCreate(['id' => $number_of_views['id']], $ar); 

К сожалению, это возвращает ошибку:

SQLSTATE [HY000]: Общая ошибка: 1364 Поле 'post_id' не имеет значения по умолчанию (SQL: insert into views ( number_of_views , updated_at , created_at ) значения (1, 2017-02-09 14:41:19, 2017- 02-09 14:41:19))

Похоже, что он не распознает 'post_id' => $post->id следовательно, возвращает ошибку, как если бы она не была установлена ​​вообще.

Эта ошибка появляется только в том случае, если запись должна быть создана, а не если она уже существует.

Вам нужно добавить поле post_id к атрибуту fillable для модели для массового назначения следующим образом:

 protected $fillable = ['post_id', 'number_of_views'];