注销Laravel

时间:2016-10-21 19:08:49

标签: php session laravel-5.3 flash-message

应用程序/ HTTP /控制器/认证/ LoginController.php

在我的app文件夹中,我有一个LoginController,它覆盖了logout函数以添加会话flash:

public function logout(Request $request)
{
    $this->guard()->logout();

    $request->session()->flush();

    $request->session()->regenerate();
    $request->session()->flash('status', 'Task was successful!');

    error_log('~~~~~~~~~~~~~~~~~~~~~');
    error_log($request->session()->get('status'));
    error_log('~~~~~~~~~~~~~~~~~~~~~');

    return redirect('/');
}

我的错误日志在这里工作,但是当我真正被重定向时,它会转到routes / web.php行:

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

但此时会话似乎不再存在。我的最终目标是在我的登录页面上显示用户已成功注销的内容。我有一种感觉,我的逻辑是有缺陷的,并且它正在通过路径文件被删除,但我知道在某些时候我确实正在写入会话。任何建议?

3 个答案:

答案 0 :(得分:0)

试试这个

    public function logout(){
    //Illuminate\Support\Facades\Auth::logout();
    Auth::logout();
    flash()->info('Bye', 'You have been successfully logged out!');
    return redirect(property_exists($this, 'redirectAfterLogout') ? $this->redirectAfterLogout : '/');
}

答案 1 :(得分:0)

在我的情况下,我只是使用

Session::flash('message','User Just Logout');
Session::flash('alert','alert-danger');

我使用此代码在刀片模板文件

上显示我的消息
@if(Session::has('message'))
  <p class="alert {{ Session::get('alert-class', 'alert-info') }}">{{ Session::get('message') }}</p>
@endif

我仍然可以使用该功能在没有错误的情况下提醒我的所有路线

答案 2 :(得分:0)

登出会话时,会话过期,因此会话Flash消息不显示...因此您必须在没有会话的情况下使用Flash消息...使用另一种方法显示Flash消息。