Обновление обнуляемого столбца с помощью NULL выдает ошибку - PullRequest
0 голосов
/ 02 ноября 2018

Я использую Laravel Framework v5.5 с базой данных MySQL. Я пытаюсь создать / обновить запись, но получаю ошибку ниже. Столбец, опубликованный в моем случае, отформатирован как DATE и имеет значение NULL. Однако, если я пытаюсь обновить столбец с нулевым значением, возникает ошибка.

Запрос данных:

{"id":4776,"name":"test","published":null}

Ошибка:

  "message": "SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect date value: '' for column 'published' at row 1

Конечно, я мог бы удалить опубликованный параметр до того, как он был обработан MySQL, но тогда мне придется сделать это во многих местах, для этого параметра и для других. Другой вариант - отключить строгий режим, но я бы этого не делал. Есть еще варианты?

1 Ответ

0 голосов
/ 02 ноября 2018

Если вы получаете значение null, важно либо распространить это как есть до уровня Eloquent, либо удалить его из ваших параметров, прежде чем оно достигнет этого уровня.

Хотя база данных NULL является допустимым значением для столбца DATETIME, который может быть NULL, пустая строка - нет. Любая форма приведения из null к пустой строке может разрушить вас здесь.

Если вам не нужно специально обнулять поля, очистка пустых параметров обычно является хорошей идеей.

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