我想让用户只有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
。
答案 0 :(得分:3)
将属性值更改为
后,您需要先保存数据Auth::user()->active = true;
Auth::user()->save();
答案 1 :(得分:1)
您必须通过调用方法 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');
}