Laravel 5.2无法注销

时间:2016-02-10 11:56:36

标签: php laravel-5.2

我在Laravel 5.2应用程序中使用身份验证。一切都好,但退出不起作用。任何人都可以向我解释,为什么会发生这种情况?

routes.php文件

Route::group([

    'middleware' => ['web']

], function () {

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

Controller.php这样

class AuthController extends Controller
{
    use AuthenticatesAndRegistersUsers, ThrottlesLogins;

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

    public function logout()
    {
        /* This place not trigger */
        echo 'Logout';
        exit;

        Auth::guard($this->getGuard())->logout();

        return redirect(property_exists($this, 'redirectAfterLogout') ? $this->redirectAfterLogout : '/');
    }
    ...
}

1 个答案:

答案 0 :(得分:3)

希望这是工作

您在控制器的方法名称中出错。

<强> 1)

  public function logout()

替换为此方法

 public function getLogout()

说明----------------------------------------

在路线中你使用了以下路线

Auth\AuthController@getLogout

您使用了以下方法

public function logout()

方法名称只是注销,路由有getLogout,因此在Auth控制器中找不到此方法,因此注销无法正常工作。

<强> 2) 另一种方法是仅使用它。

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

并删除Logout方法。

Thnaks