【发布时间】:2019-11-05 21:51:22
【问题描述】:
我要回到一个旧项目,登录时需要访问主页,如果没有,您将被重定向到 /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,
]);
}
}
【问题讨论】:
-
你能把你的代码贴在你使用 auth 类的地方吗
-
我用控制器编辑了原始帖子!
-
尝试在您的班级上方添加
use Auth。 -
我已经有
use Illuminate\Support\Facades\Auth;但如果我用use Auth;替换它,我会得到同样的错误 -
啊抱歉我错过了 Auth 课程。
标签: php laravel middleware