Laravel重定向,注销无效

win*_*oy5 25 php authentication redirect laravel laravel-4

我正在使用laravel 4框架.当我在Auth :: logout()之后使用重定向时,重定向不起作用.我也使用了View :: make(),但同样的"哎呀,看起来像是出了问题." 错误抛出.

public function getLogout() {
      Auth::logout();
  return Redirect::to('users/login')->with('message', 'Your are now logged out!');
}
Run Code Online (Sandbox Code Playgroud)

这是注销码.我在用.有人请帮帮我.

routes.php文件

Route::get('/', function()
  {
return View::make('hello');
  });

Route::controller('users', 'UsersController');
Run Code Online (Sandbox Code Playgroud)

HTML

            @if(!Auth::check())
                <li>{{ HTML::link('users/register', 'Register') }}</li>   
                <li>{{ HTML::link('users/login', 'Login') }}</li>   
            @else
                <li>{{ HTML::link('users/logout', 'logout') }}</li>
            @endif
Run Code Online (Sandbox Code Playgroud)

这是我的调试器显示的内容.

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'remember_token' in 'field list'    (SQL: update `users` set `updated_at` = 2014-04-23 11:30:41, `remember_token` = jSMcfpPnCPrKgwqfhB2tEEEd8h8x6d72viz67MbVzBD27A2G7AH8yWQo1ORf where `id` = 1) 
Run Code Online (Sandbox Code Playgroud)

lag*_*box 52

您可能缺少users表的remember_token.

请参阅:http://laravel.com/docs/upgrade#upgrade-4.1.26

Laravel需要"可空的remember_token VARCHAR(100),TEXT或等同于你的用户表".

更新新文档

Laravel 4.2及更高版本现在有一个方法可以与架构构建器一起使用来添加此列.

$table->rememberToken();

Laravel Docs - Schema - 添加列

  • 如果更详细 - 您必须编辑迁移文件并添加:$ table-> text('remember_token') - > nullable(); 然后重新运行迁移 (7认同)

pau*_*dru 8

如果你有Laravel 4.2,你可以这样做:

命令行:

php artisan migrate:make add_remember_token_to_users_table --table="users"
Run Code Online (Sandbox Code Playgroud)

在此之后打开文件app/database/migrations/2014_10_16_124421_add_remember_token_to_users_table并按如下方式编辑它:

public function up()
{
    Schema::table('users', function(Blueprint $table)
    {
        $table->rememberToken();
    });
}

public function down()
{
    Schema::table('users', function(Blueprint $table)
    {
        $table->dropColumn('remember_token');
    });
}
Run Code Online (Sandbox Code Playgroud)


小智 8

对于你的问题,你可以传递null值,或者你可以在你的模型php文件中删除你的remember_token值

public $remember_token=false;
Run Code Online (Sandbox Code Playgroud)