Lravel 5.2 session :: forget()和session :: flush()无效

时间:2016-03-28 09:54:37

标签: laravel-5.2

我刚在Laravel 5.2应用程序中制作了一个子认证中间件,它使用Laravel会话来存储数据。

我可以将我的数据放到Laravel会话中 但是当我想要删除那个变量形式的会话时,它只在页面重定向或某人重新加载变量仍然存在的页面时才用于该请求。

在我的控制器文件

 class SubmissionController extends Controller
{
public function login(Request $request){
    if($request->session()->has('submission')) return redirect('/submission-directory');

    return view('submission.login');
}

public function dologin(Request $request){
    if(!$request->get('password') == "reader") return redirect('/submission-directory/login')->withErrors('errors.wrong-password');

    Session::put('submission','yes');

    $redirect = $request->session()->pull('submission_redirect','/submission-directory');
    return redirect($redirect);
}

public function index(Request $request){

    dump($request->session()->all());

    $request->session()->forget('submission');

    dump($request->session()->all());

    die('coming here');
}
}

enter image description here

但是当我重新加载页面时你的会话仍然存在..

enter image description here

注意::我已将所有路径放在Web中间件组

Route.php

   Route::group(['middleware' => 'web'], function () {
     Route::group(['prefix'=>'/submission-directory'],function(){
      Route::get('/login','submissionController@login');

      Route::post('/login',['as'=>'submission.login','uses'=>'SubmissionController@doLogin']);

      Route::group(['middleware'=>'submission'],function(){
       Route::get('/','SubmissionController@index');
      });
    });

1 个答案:

答案 0 :(得分:0)

试试这个

IN控制器:

use Session;

public function index(Request $request)
{
dump(Session::all());
Session::forget('submission');
print_r((Session::all());
die;
}