我要回到一个旧项目,登录时需要访问主页,否则,您将被重定向到/ 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,
]);
}
}
答案 0 :(得分:0)
这可能意味着您尚未登录,请尝试将其添加到控制器中索引功能的开头
if(Auth::user()){
//Your Code
}else{
return redirect('/');
}