php - 试图在 Laravel 中间件角色上获取非对象的属性
问题描述
我正在尝试为我的项目中的身份验证创建中间件角色,这是我的中间件,称为销售。
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
class Sales
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if($request->user()->role == "sales"){
return $next($request);
}
return redirect()->route('login')->with('error',"You don't have an access");
}
}
这是我从中间件保护的路线
Route::get('dashboard','DashboardController@index')->middleware('sales')->name('dashboard');
当我尝试访问仪表板以确保我的路由受中间件保护时,它会显示如下错误
Trying to get property of non-object
如果您回答这个问题,我将不胜感激!
解决方案
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
class Sales
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if(Auth::check() && Auth::User()->role=='sales'){
return $next($request);
}
return redirect()->route('login')->with('error',"You don't have an access");
}
}
推荐阅读
- monitoring - 触发比较 Zabbix 中的两个值
- keras - 如何在 keras 的预训练模型中插入自定义层
- docker - 无法在浏览器中打开 VS Code devcontainer
- javascript - Javascript:如何显示数组中的一定数量的项目并在按钮单击时显示其他项目?
- docker - 无法容器化 NestJS 微服务
- php - 安装 PHP 扩展 xml
- ruby-on-rails - 如何在 Rails 中保存对象之前验证实例化和验证子级
- c# - 如何在 C# WPF 中使用参数绘制圆弧?
- google-sheets - 如何使用 Arrayformula 将百分比报价设置为表中的一列
- c# - ASP.Net 如果数据不存在则添加数据,如果数据存在则更新数据