Laravel 注销记住令牌错误
Laravel logout remember token error
这次我尝试注销用户...我很确定我的路由和控制器是好的,但我不知道为什么我有这样的错误(当然当我'我正在尝试注销 ):
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'remember_token' in 'field list'
这是我在控制器中的方法:
public function logout()
{
Auth::logout();
return redirect('/');
}
我的注销是 link 在视图中...怎么了?
要在 laravel 中注销,您应该在用户 table 中添加 remember_token
列。或您用于 auth
的任何 table
我正在使用 Laravel 5.5 并在 Whosebug 中阅读有关 The User Provider Contract, I saw something is also the answer to another question here 的内容:
由于Userclass继承自Authenticatable,Authenticatableclass使用了AuthenticatableContract,实现了用户获取和设置Token的方法
因此,一个简单的解决方案是在您的用户 class(或等效项)中覆盖(或实现)这些方法:
public function getRememberToken()
{
return $this->token;
}
public function setRememberToken($value)
{
$this->token = $value;
}
public function getRememberTokenName()
{
return 'token';
}
您可以替换 'token' 并使用您想要的任何词。
在Auth/LoginController上添加功能:
function get_guard(){
if(Auth::guard('web')->check()){
return "web";
}
elseif(Auth::guard('manager')->check()){
return "manager";
}
elseif(Auth::guard('client')->check()){
return "client";
}
return "web";
}
public function logout(){
$guard = $this->get_guard();
switch ($guard) {
case 'admin': Auth::guard('admin')->logout(); break;
case 'web' : Auth::guard('web')->logout(); break;
default : Auth::guard('web')->logout(); break;
}
return redirect()->guest(route("login"));
}
这次我尝试注销用户...我很确定我的路由和控制器是好的,但我不知道为什么我有这样的错误(当然当我'我正在尝试注销 ):
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'remember_token' in 'field list'
这是我在控制器中的方法:
public function logout()
{
Auth::logout();
return redirect('/');
}
我的注销是 link 在视图中...怎么了?
要在 laravel 中注销,您应该在用户 table 中添加 remember_token
列。或您用于 auth
我正在使用 Laravel 5.5 并在 Whosebug 中阅读有关 The User Provider Contract, I saw something is also the answer to another question here 的内容:
由于Userclass继承自Authenticatable,Authenticatableclass使用了AuthenticatableContract,实现了用户获取和设置Token的方法
因此,一个简单的解决方案是在您的用户 class(或等效项)中覆盖(或实现)这些方法:
public function getRememberToken()
{
return $this->token;
}
public function setRememberToken($value)
{
$this->token = $value;
}
public function getRememberTokenName()
{
return 'token';
}
您可以替换 'token' 并使用您想要的任何词。
在Auth/LoginController上添加功能:
function get_guard(){
if(Auth::guard('web')->check()){
return "web";
}
elseif(Auth::guard('manager')->check()){
return "manager";
}
elseif(Auth::guard('client')->check()){
return "client";
}
return "web";
}
public function logout(){
$guard = $this->get_guard();
switch ($guard) {
case 'admin': Auth::guard('admin')->logout(); break;
case 'web' : Auth::guard('web')->logout(); break;
default : Auth::guard('web')->logout(); break;
}
return redirect()->guest(route("login"));
}