【问题标题】:flash session not working in Middleware Laravel 5.2flash 会话在中间件 Laravel 5.2 中不起作用
【发布时间】:2016-06-03 17:51:33
【问题描述】:

我是 Laravel 的新手。我在中间件中遇到会话闪存问题。 在中间件中:

public function handle($request, Closure $next)
       {
            if(auth()->check()){
                return $next($request);
            }else{
                Notification::error('Please login');
                return redirect()->route('admin.auth.login.get')->with('test',' session');
            }

        }

在视图中:

我收到通知,但没有任何反应。我检查了 flash session (session('test'))-> 没有任何反应。

请帮我解释一下为什么它不起作用?有什么解决办法?

非常感谢你,对我的英语感到抱歉。

【问题讨论】:

标签: laravel


【解决方案1】:

web中间件中添加你的路由

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

看到这个
basic-routing

确保在kernel.php
web 中间件是

        'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class,

    ],

【讨论】:

  • 感谢您的快速回答。我已经添加了 middle=>'web' 但它仍然无法正常工作。这是我在 Route.php
    Route::group(array('middleware'=>'web'),function(){ Route::get('auth/register', array('as'= >'admin.auth.register.get','uses'=>'AuthController@getRegister')); Route::post('auth/register', array('as'=>'admin.auth.register.post ','uses'=>'AuthController@postRegister')); Route::get('auth/login', array('as'=>'admin.auth.login.get','uses'=>'AuthController @getLogin')); Route::post('auth/login', array('as'=>'admin.auth.login.post','uses'=>'AuthController@postLogin')); });
  • 它不工作。它仍然没有发生,我不知道为什么:(
  • 我在 App\Modules\Admin\Http\Middleware 中创建中间件,因为我使用的是模块包。你认为这是错误的原因吗?
  • 非常感谢 Pananoid,我已经解决了这个问题,问题是我将 auth 中间件放在 web 中间件之前的位置,所以它不起作用。现在,当我将 web 中间件放在 auth 中间件之前时,它可以完美运行。再次感谢 pananoid。
  • 感谢@liemphan,您的最后一条评论解决了我的问题
猜你喜欢
  • 2017-11-25
  • 2016-11-27
  • 1970-01-01
  • 1970-01-01
  • 2016-08-25
  • 2016-08-17
  • 1970-01-01
  • 2015-06-30
  • 1970-01-01
相关资源
最近更新 更多