Intereting Posts

Ошибка MySql: 1364 Поле 'display_name' не имеет значения по умолчанию

Я только что переключился с установки MAMP на собственную установку Apache, MySql и PHP. У меня все работает, но я начал использовать свое веб-приложение в новой среде, и вдруг любые команды INSERT приводят к следующей ошибке:

SQLSTATE [HY000]: общая ошибка: 1364 Поле 'display_name' не имеет значения по умолчанию

Кажется, я не могу оставить поле пустым сейчас, где я был в состоянии раньше. Я использую MySql версию 5.6.13

Есть ли способ изменить этот параметр в MySql?

MySQL, скорее всего, в режиме STRICT. Попробуйте запустить SET GLOBAL sql_mode='' или отредактируйте файл my.cnf, чтобы убедиться, что вы не устанавливаете STRICT_ALL_TABLES или тому подобное.

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

Измените столбец, чтобы разрешить null:

 ALTER TABLE `x` CHANGE `display_name` `display_name` TEXT NULL 

или, присвойте ему значение по умолчанию в качестве пустой строки:

 ALTER TABLE `x` CHANGE `display_name` `display_name` TEXT NOT NULL DEFAULT '' 

Все эти ответы являются хорошим способом, но я не думаю, что вы хотите всегда идти в свою БД и изменять значение по умолчанию, которое вы установили в NULL. Я предлагаю вам перейти в приложение / User.php и изменить защищенный $ fillable, чтобы он использовал ваши новые поля в массиве данных, который использовался для регистрации. Предположим, вы добавили новое поле ввода «first_name», ваш $ fillable должен выглядеть примерно так: protected $ fillable = ['first_name', 'email', 'password',]; Это сделало это для меня. Удачи!