在laravel 5.1中的中间件中不起作用

时间:2016-01-06 08:03:56

标签: php laravel-5.1 middleware laravel-middleware

我有这样的middelware:

public function handle($request, Closure $next)
{
    if(Request::segment(1)=='test'){
        return $next($request);
    }else{
        Auth::logout();
        Session::flush();
       return view  ('login')->with(['flag'=>1]);
     }
}

return view ('dashboard');剂量不显示登录页面和
告诉我这个错误

  

VerifyCsrfToken.php第101行中的FatalErrorException:
  在非对象上调用成员函数setCookie()

Phpstorme高亮显示视图和工具提示有此消息

  

未定义的函数查看更多...(ctrl + f1)

当我使用此命令时

return redirect()->guest('auth/login');

它重定向到登录页面,但我想要通过标志登录页面

3 个答案:

答案 0 :(得分:1)

尝试将{!! csrf_field() !!}放在您的表单中,如下所示:

...
{!! csrf_field() !!}                
<div class="form-group">                   
<label>Name</label>
...

答案 1 :(得分:1)

如果要将标志传递给登录页面。你可以尝试这个:

return redirect()->guest('auth/login')->with('flag','1');

答案 2 :(得分:1)

我一直在寻找类似问题的解决方案。

当用户尝试从中间件访问某个经过身份验证的网址(例如http://localhost/my-site/admin/user/profile)时,我的目的是返回登录页面视图(但不会重定向到登录页面)。

以下代码段解决了我的问题

将其添加到您的命名空间

use Illuminate\Http\Response;

并在Middleware的句柄方法中使用以下return语句

return new Response(view('user/login'));