Я пытаюсь сделать свойства 'name' и 'email' охраняемыми в моей модели пользователя, потому что я не хочу, чтобы мои пользователи могли изменять их после регистрации.
Моя модель пользователя выглядит следующим образом:
protected $fillable = [
'province',
'city',
'street',
'postal',
'cellphone',
'facebook',
'instagram',
];
protected $guarded = [
'name',
'email',
'password',
'account_type',
'verified_type',
];
При регистрации Laravel по умолчанию массово присваивает эти значения следующим образом:
//Create the user
$user = User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
'province' => $data['province'],
'city' => $data['city'],
'street' => $data['street'],
'postal' => $data['postal'],
'cellphone' => $data['cellphone'],
'trial_ends_at' => \Carbon\Carbon::now()->addMonths(3),
'account_type' => $accountType,
]);
Но это выдает ошибку для меня, потому что 'name'не имеет значения по умолчанию и не может быть обнуляемым.Я понимаю, почему я получаю ошибку и как ее исправить, но я хотел бы знать, как мне следует назначить имя и адрес электронной почты, если у них нет свойств по умолчанию / nullable.Например, что-то вроде:
$user = new User();
$user->name = $request->name;
$user->email = $request->email;
$user->save();
$user->update([
//the rest of the mass assignable values
]);
Или есть более простой способ?