“试图获取非对象的属性‘头’” Middleware\VerifyCsrfToken.php:180

Vla*_*der 2 laravel eloquent laravel-5

我写了我的自定义中间件,但是在执行时,出现错误。中间件:

namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
use App\Employee;

class CheckConfirm
{
public function handle($request, Closure $next)
{
    if(Auth::check())          
    {
        $id = Auth::id();        
        $empl = Employee::where('user_id','=', $id)->get();
        if($empl->isEmpty())
        {
            return route('confirm');                    
        }
        else
        {                
            dump($empl);
            return $next($request);
        }
    }
    else
    {
        return route('login');
    }
}
}
Run Code Online (Sandbox Code Playgroud)

当我尝试这样的事情时:

if($empl===null)
   {
      return route('confirm');                    
   }
Run Code Online (Sandbox Code Playgroud)

?条件是行不通的。在这种情况下,数据库查询执行成功。 这是带有转储的错误页面

pat*_*cus 5

您的中间件必须返回一个Response对象,或$next($request). 正如所写,当未登录或$empl为空时,您的中间件只是返回一个字符串,而不是重定向。

将您的退货更新为:

return redirect()->route('confirm');
Run Code Online (Sandbox Code Playgroud)

return redirect()->route('login');
Run Code Online (Sandbox Code Playgroud)

分别。