Похоже, вы правильно выполнили миграцию, используя nullable. Могу ли я спросить, удалили ли вы старую БД и перенастроили ее с включенным $table->string('gender')->nullable();
? Возможно, он все еще работает со старой базой данных, в которой поле gender
не может быть обнуляемым.
Следующая вещь - попытаться просто ввести данные напрямую, чтобы увидеть, связана ли проблема с БД или с вводом данных из формы. Попробуйте это:
return User::create([
'name' => 'testname',
'avatar' => $avatar_path,
'gender' => 'MALE',
'email' => 'aa@bb.com',
'password' => Hash::make($data['password']),
]);
Если это работает, проблема заключается в том, что из формы исходит нулевое значение, а БД не настроена на нулевое значение.
Кроме того, убедитесь, что в пользовательской модели поле gender
действительно заполнено. на вашей пользовательской модели убедитесь, что она выглядит следующим образом:
protected $fillable = [
'name',
'avatar',
'gender', <--- make sure that gender is here
// Etc.
];