Если в MySQL настроено целочисленное поле, пустые значения не допускаются, значение по умолчанию равно нулю, и вы пишете запрос, пропускающий это поле, в Laravel запрос все еще выполняется, и значение по умолчанию, равное нулю, не используется, а вместо этогозаписывается как '0'.
Если я беру точный сгенерированный запрос от Eloquent / построителя запросов и запускаю его в MySQL, он завершается неудачно, справедливо заявляя, что у рассматриваемого поля должно быть значение по умолчанию.
Почему это расхождение?Что, черт возьми, делает eloquent / построитель запросов / pdo?!
создать синтаксис таблицы ниже:
CREATE TABLE `chapters` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`account_id` int(10) unsigned NOT NULL,
`season_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `chapters_account_id_index` (`account_id`),
KEY `chapters_season_id_index` (`season_id`)
) ENGINE=InnoDB AUTO_INCREMENT=6060 DEFAULT CHARSET=utf8
COLLATE=utf8_unicode_ci
Выполнение вставки и пропуск account_id в MySQL завершается неудачно - как и должно быть.Делать то же самое в Eloquent / Laravel - нет, несмотря на правильность сгенерированного запроса.