2016-12-13 58 views
0

我正在学习laravel,并且我刚刚创建了一个中间件,只有很少的会话工作。但我得到以下错误:Laravel CSRF错误

FatalThrowableError in VerifyCsrfToken.php line 136: Call to a member function setCookie() on null

这里是中间件:

<?php 

namespace App\Http\Middleware; 

use Closure; 

class Adminlogin { 

    public function handle($request, Closure $next) { 
     echo 1; 
     if (!$request->session()->has('userid')) { 
      return view('admin.auth.login'); 
     } 
     return $next($request); 
    } 

} 
+0

也就是说核心代码或laravel 5.3 –

+0

@Haren嗨,你好,你可以用'尝试返回响应() - >视图( 'admin.auth.login');' – Hackerman

+0

@ mopo922没有..我没有改变任何东西。这是内部供应商/ laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php第136行: –

回答

0

在这种情况下response()->view()返回与状态码200指定的观点,但你可以改变在许多方面的响应。

From the documentation: If you need control over the response's status and headers but also need to return a view as the response's content, you should use the view method: https://laravel.com/docs/5.3/responses

return response() 
     ->view('hello', $data, 200) 
     ->header('Content-Type', $type); 
0

你不应该从你的middleware返回一个视图。相反,尝试重定向到返回该视图的路线。

像 -

return redirect()->route('login');