#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
массиве.