У меня есть простая модель пользователя:
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('email')->unique();
$table->string('password');
...
}
Я хочу сделать сеялку, которая не будет заполнять адреса электронной почты, которые могут быть позже заполнены пользователем:
for($i = 0; $i < 11; $i++){
$user = new User();
$user->save();
}
Однако у меня есть очевидная ошибка:
SQLSTATE [HY000]: Общая ошибка: 1364 Поле 'email' не имеет значения по умолчанию
Iпопытался использовать мутатор User Model для моей сеялки:
User Model
public function setEmailAttribute($value) {
if ( empty($value) ) { // will check for empty string
$this->attributes['email'] = NULL;
} else {
$this->attributes['email'] = $value;
}
}
User Seeder
for($i = 0; $i < 11; $i++){
$user = new User();
$user->setEmailAttribute('');
$user->app_role = "user";
$user->save();
}
но это не работает для меня здесь, я снова получаю сообщение об ошибке:
SQLSTATE [23000]: нарушение ограничения целостности: 1048 Столбец 'email' не может быть пустым
Однако я не хочу постоянно устанавливать для столбца email
значения unique
и nullable
, поскольку я хочу проверить это только для моей сеялки.
Кто-нибудь знает, как найти решение здесь?