我只想在授权者是管理员时提取数据。
用户控制器:
public function index() { if (auth::user()->type == 'admin') { return User::where('type','!=','admin')->latest()->paginate(100); } }
出现错误:正在尝试获取非对象的属性“type”。
2vuwiymt1#
此代码:
if (auth::user()->type == 'admin') {
应该是。
if (auth()->check() && auth()->user()->type == 'admin') {
说明:
auth()->check()
&&
auth()->user()->type
type
pftdvrlh2#
如果使用基于角色的身份验证,则可以通过在用户模型中创建函数来检查用户角色
用户模型
public function isAdministrator() { return $this->hasRole('admin'); }
用户控制器
class userController { public function index() { if(Auth::user()->isAdministrator()) { # code... } }
vdgimpew3#
试试这个:创建中间件并通过中间件传递路由,它会工作
public function handle($request, Closure $next) { if (auth()->user() && auth()->user()->type != 'admin') { return redirect('/unauthorized'); } return $next($request); }
fgw7neuy4#
您可以使用方法hasRole来检查角色是否为admin。
public function index() { if (auth::user()->hasRole('admin')) { return User::latest()->paginate(100); } }
4条答案
按热度按时间2vuwiymt1#
此代码:
应该是。
说明:
auth()->check()
--确保有用户登录。&&
-如果为false,则在第一次检查后停止auth()->user()->type
--从用户获取type
属性pftdvrlh2#
如果使用基于角色的身份验证,则可以通过在用户模型中创建函数来检查用户角色
用户模型
用户控制器
vdgimpew3#
试试这个:创建中间件并通过中间件传递路由,它会工作
fgw7neuy4#
您可以使用方法hasRole来检查角色是否为admin。