VerifyCsrfToken,Auth和尝试获取非对象的属性

时间:2019-06-24 06:04:45

标签: php laravel middleware

我要回到一个旧项目,登录时需要访问主页,否则,您将被重定向到/ login。为此,我使用的是Auth中间件,但是这样做时,我得到了以下错误(有关错误和imgur上的完整错误,请参见文章底部)。

我检查了middleware,但实际上没有自定义变量,我还检查了代码以查看是否未使用怪异的middleware组或其他任何东西,但我似乎无法立即找到错误。

在我的HomeController.php中,如果我删除了Auth middleware的使用,脚本将继续执行(但是,关于角色和权限,我还有另一个错误,这很正常)

    public function __construct()
    {
        $this->middleware('auth');
    }

通常,我希望将其重定向,但是却出现此错误: 试图获取非对象的属性

完整错误: Refer this

我要提到的是,每个需要认证的页面上都有这个错误,而不是不需要的页面上,它不仅限于我的HomeController

谢谢!

编辑: 这是我使用中间件的完整控件(即使我在其他地方也遇到了问题)

<?php

namespace App\Http\Controllers;

use App\Sinistre;
use App\Appointment;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class HomeController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {
        $sinistres = null;
        if (Auth::user()->hasRole('admin')) {
            $sinistres = Sinistre::all();
        } else {
            $sinistres = Auth::user()->sinistres;
            foreach(Auth::user()->societe AS $societe){
                $sinistres = $sinistres->merge($societe->sinistre);
            }
        }

        $sinistres = $sinistres->unique();

        $appointments = Appointment::orderBy('date_start', 'desc')->with(['sinistre', 'sinistre.user'])->take(8)->get()->reverse();
        return view('pages.home', [
            'sinistres' => $sinistres,
            'appointments' => $appointments,
        ]);
    }
}

1 个答案:

答案 0 :(得分:0)

这可能意味着您尚未登录,请尝试将其添加到控制器中索引功能的开头

    if(Auth::user()){
     //Your Code
    }else{
     return redirect('/');
    }