Laravel — Случайный пароль при создании

#laravel

#ларавель

Вопрос:

У меня есть метод, который хранит данные о сотрудниках при создании, однако я определил пароль по умолчанию, который будет создаваться случайным образом и хэшироваться. Пароль по какой-то причине не сохраняется.

Есть какие-нибудь идеи?

 public function store(Request $request)  {  // get company  $company = Auth::user()-gt;companies()-gt;first();   // get and validate data  $storeData = $request-gt;validate([  'firstname' =gt; 'required',  'lastname' =gt; 'required',  'email' =gt; 'required|email',  'phone' =gt; 'required|numeric|digits:11'  ]);   // create employee with validated data  $employee = $company-gt;employees()-gt;create(array_merge($storeData), [  'password' =gt; Hash::make(Str::random(40)),  ]);   return redirect('/employees/' . $employee-gt;id )  -gt;with('success', 'Employee successfully created');  }  

Комментарии:

1. Является ли ваш password атрибут $fillable в вашей пользовательской модели?

2. да, он находится в массиве $fillable

Ответ №1:

В вашем коде есть опечатка, попробуйте

 $employee = $company-gt;employees()-gt;create(array_merge($storeData, [  'password' =gt; Hash::make(Str::random(40)),  ]));  

Он array_merge закрыт слишком рано и содержит только то, что у вас есть в $storeData массиве.