在我的users
表中,我有role
字段,可以用admin
,driver
,petugas
,rental
中的任何一个填充。我想让role
或admin
登录rental
的用户,但登录系统会拒绝该用户。
我尝试覆盖credentials()
中的LoginController.php
方法,如下所示
protected function credentials(Request $request)
{
$field = $this->field($request);
return [
$field => $request->get($this->username()),
'password' => $request->get('password'),
'role'=>['admin', 'jasa_angkutan', 'rental']
];
}
但是它不起作用。我确实不知道如何达到要求。
答案 0 :(得分:0)
这是一个肮脏的骇客,但至少对我而言有效。
protected function credentials(Request $request)
{
$field = $this->field($request);
$user = \App\User::where([
$field=>$request->get($this->username())
])->whereIn('role', [
'admin', 'jasa_angkutan', 'rental'
])->first();
if($user){
return [
$field => $request->get($this->username()),
'password' => $request->get('password')
];
}
return [];
}
在将凭据传递给auth方法之前,首先检查用户和角色是否符合条件。就是这样。