将"状态"数据插入到身份验证控制器中的数据库



我想让用户只有 1 次登录。我已经在数据库中用布尔数据类型制作了active列。
然后,我使用此Auth::user()->active = true;将数据插入数据库,但当我尝试登录时似乎不起作用。

这是我的AuthController

protected function authenticated(){
if (!Auth::user()->active) {
if(Auth::user()->role == 'Admin') {
Auth::user()->active = true;
return redirect('/listUser');
} elseif (Auth::user()->role == 'CCO'){
Auth::user()->active = true;
return redirect('/eCalendar');
}
Auth::user()->active = true;
return redirect('/eCalendars');
} else{
Auth::logout();
return redirect('/login');
}
}
public function logout()
{
Auth::user()->active = false;
Auth::logout();
return redirect('/login');
}

如果我尝试登录,数据库中的active列不会更改。但是,如果注销成功更改为false

您需要在将属性值更改为

Auth::user()->active = true;
Auth::user()->save();

你必须通过调用方法update((来保存更改

protected function authenticated(){
if (!Auth::user()->active) {
if(Auth::user()->role == 'Admin') {
Auth::user()->active = true;
Auth::user()->update();
return redirect('/listUser');
} elseif (Auth::user()->role == 'CCO'){
Auth::user()->active = true;
Auth::user()->update();
return redirect('/eCalendar');
}
Auth::user()->active = true;
Auth::user()->update();
return redirect('/eCalendars');
} else{
Auth::logout();
return redirect('/login');
}
}
public function logout()
{
Auth::user()->active = false;
Auth::user()->update();
Auth::logout();
return redirect('/login');
}

最新更新