如何调用create方法从控制器中注册用户。
注册新用户时,用户已经登录。 在做的时候:
User::create([
...
]);
密码未经过哈希处理,因此必须使用其他方法调用完成注册过程。在默认注册过程使用的postRegister方法中,有一行
Auth::login($this->create($request->all()));
那我怎么能调用呢 $ this-> create($ request-> all())
使用我的自定义控制器以及它需要哪些参数。
任何想法 提前感谢任何反馈。
/**
* Invites a new user to the current users company.
* @param Request $request
* @return mixed
*/
public function employeeInvite(Request $request) {
$this->validate($request, [
'email' => 'required|email',
]);
// TODO: Check user is authorized to send invites
$user = $this->users->getUserByEmail($request->email); // get user
if($this->userExists($user)
&& $request->user()->email != $request->email
&& $this->userHasInvite($user->id, $request->user()->company_id) == false)
{
// send invite
if($this->sendInvite($request->user()->company_id, $user->id)) {
// if worked, create succses method to send back to the user
}
} else
{
// create user
$userData = [
'email' => $request->email,
'password' => $this->random_password(6),
];
$newUser = User::create($userData);
// send invite
$this->sendInvite($request->user()->company_id, $userData->id);
}
return redirect('members/company');
} // end function employeeInvite
答案 0 :(得分:0)
User::create()
方法本身不会对密码进行哈希处理,因此您必须自己完成。
Laravel的散列函数为bcrypt()
,因此您的$userData
数组应如下所示:
$userData = [
'email' => $request->email,
'password' => bcrypt($this->random_password(6)),
];