缺少remember_token数据库字段的Auth :: logout()

时间:2014-05-13 08:05:10

标签: php laravel-4

当我使用此代码执行此操作时,我只是尝试从控制台注销管理员用户:

routes.php文件

Route::get('logout',array('uses'=>'AuthController@LogOut'));

AuthController.php

class AuthController extends Controller{

   public function LogOut(){

    Auth::logout();
    return Redirect::to('login');
   }
}

虽然它在退出时给我这样的错误

Erro

因为我在数据库中没有这样的字段,并且在迁移时它也没有添加到数据库中。

2 个答案:

答案 0 :(得分:1)

错误最有可能发生,因为remember_token表中Auth要求users字段。因此,您应在remember_token迁移表中添加users字段(可能是字符串字段)并进行迁移。然后,您应该创建一个用户,登录该用户,然后尝试注销。希望这样做可以解决您的问题。

答案 1 :(得分:0)

我猜你最近和作曲家一起进行了更新,并升级了Laravel核心。您需要执行一些步骤来升级到最新的Laravel版本,如Laravel升级信息中所述:http://laravel.com/docs/upgrade#upgrade-4.1.26

  

Laravel 4.1.26引入了安全性改进"记住我"   cookies ...更改需要添加一个新的remember_token   列到您的用户(或等效的)数据库表。

如果您正在使用Eloquent,您还需要使用这些方法更新User课程:

public function getRememberToken()
{
    return $this->remember_token;
}

public function setRememberToken($value)
{
    $this->remember_token = $value;
}

public function getRememberTokenName()
{
    return 'remember_token';
}