我只想在auth是管理员的情况下获取数据。
用户控制器:
public function index()
{
if (auth::user()->type == 'admin') {
return User::where('type','!=','admin')->latest()->paginate(100);
}
}
我遇到了错误:
试图获取非对象的属性“类型”。
答案 0 :(得分:2)
此代码:
if (auth::user()->type == 'admin') {
应该是。
if (auth()->check() && auth()->user()->type == 'admin') {
说明:
auth()->check()
-确保有一个用户登录。&&
-在第一次检查是否为假后停止auth()->user()->type
-从用户获取type
属性答案 1 :(得分:1)
如果使用基于角色的身份验证,则可以通过在用户模型中创建功能来检查用户角色
用户模型
public function isAdministrator()
{
return $this->hasRole('admin');
}
用户控制器
class userController
{
public function index()
{
if(Auth::user()->isAdministrator())
{
# code...
}
}
答案 2 :(得分:0)
尝试一下:创建中间件并通过中间件传递路由,它将起作用
public function handle($request, Closure $next)
{
if (auth()->user() && auth()->user()->type != 'admin')
{
return redirect('/unauthorized');
}
return $next($request);
}