我正在使用 Metronic 8 Laravel 主题构建我的第一个 Laravel 应用程序。它使用 Breeze 进行身份验证。我改变了一些事情 - 为未登录的用户创建了一个欢迎页面,并将作为索引的主模板移动到 auth protected "/dashboard"
。问题是它仍然尝试加载仪表板 Blade 模板,无论身份验证如何,都会导致错误。
路线
Route::get('/dashboard', function () {
return view('dashboard');
})->middleware(['auth'])->name('dashboard');
这是 Authenticate,它应该将未经身份验证的用户重定向到登录页面。
protected function redirectTo($request)
{
if (! $request->expectsJson()) {
return route('login');
}
}
当我没有登录并导航到仪表板 URL 时,它会尝试加载仪表板 Blade 模板,该模板调用一个菜单函数来检查用户对菜单项的权限。不幸的是,由于没有用户,应用程序会因为将 null 值传递给期望用户的方法而崩溃array/object
。
关于在哪里寻找问题的任何想法?在我看来,在未登录时尝试加载 Blade 模板之前,auth 中间件应该重定向到登录页面。