在laravel注册系统中,有一个功能guard()
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text(
'Home',
textAlign: TextAlign.center,
style: TextStyle(
color: Colors.white,
fontSize: 50,
fontWeight: FontWeight.bold,
),
),
CircleAvatar(
radius: 20,
backgroundImage: NetworkImage(
'https://source.unsplash.com/50x50/?portrait',
),
),
],
)
就地
vendor / laravel / ui / auth-backend / RegisterUsers.php
并且寄存器的功能使用此保护功能
protected function guard(){
return Auth::guard();
}
当我想为另一个警卫建立一个注册系统时,我将覆盖功能警卫功能并像这样使它
public function register(Request $request){
$this->validator($request->all())->validate();
event(new Registered($user = $this->create($request->all())));
$this->guard()->login($user);
if ($response = $this->registered($request, $user)) {
return $response;
}
return $request->wantsJson()
? new Response('', 201)
: redirect($this->redirectPath());
}
所有这些都很好
但是在电子邮件验证中,guard()函数不存在
它使用
protected function guard(){
return Auth::guard('admin');
}
像那样
$request->user()
那么,如果我想在这种情况下覆盖守卫怎么办 我本以为会浪费(重新发送)的全部功能,但我认为这不是最好的解决方案 谁能告诉我该怎么做
答案 0 :(得分:0)
代替覆盖警卫队的功能
我只会用
构造函数中的shouldUse()
函数
像那样
auth()->shouldUse('admin');
然后当我使用request->user()
时,它将自动用作管理员保护