首页 文章

注销按钮在laravel 5.2中不起作用

提问于
浏览
1

我正在使用laravel 5.2框架,我使用 php artisan make:auth 命令创建了auth . 我在我的AuthController中有这个:

protected $redirectTo = '/';
protected $redirectPath = '/students';
protected $loginPath = '/auth/login';

public function __construct()
{
    $this->middleware('guest', ['except' => 'logout']);
}

这些在我的routes.php文件中:

Route::group(['middleware' => 'web'], function () {
    Route::auth();

    Route::get('/home', 'HomeController@index');

    Route::get('/', 'HomeController@index');

    Route::get('/students/', 'StudentsController@showStudents');

    // Authentication routes...
    Route::get('auth/login', 'Auth\AuthController@getLogin');
    Route::post('auth/login', 'Auth\AuthController@postLogin');
    Route::get('auth/logout', 'Auth\AuthController@getLogout');

    // Registration routes...
    Route::get('auth/register', 'Auth\AuthController@getRegister');
    Route::post('auth/register', 'Auth\AuthController@postRegister');
});

虽然登录/注册一切都很完美,但是当我按下注销按钮时没有任何变化,我仍然登录 . 我想要的是在点击该注销按钮后重定向到auth / login视图 . 请帮忙 .

2 回答

  • 0

    问题来自AuthController中间件,因为默认路由器名称是“ logout ”,如果您更改了名称,中间件将无法识别您的路由器名称 .

    您只需要保留默认名称路由器或修复构造中间件 .

    Route::get('logout', [ 'uses' => 'Auth\AuthController@getLogout', 'as' => 'logout' ]);
    

    Authcontroller

    public function __construct(){
       $this->middleware('guest', [ 'except' => 'logout' ]); // Default router name is "logout"
    }
    

    希望它会帮助你:-)

  • 1

    将其添加到AuthController.php

    public function getLogout(){
          return redirect('Auth/login');
    
    }
    

相关问题