laravel-admin前台view视图中判断是否已登录,是否为超级管理员
2019-11-10 admin laravel 1584
在laravel中,判断是户是否已登录的方法是:
use Illuminate\Support\Facades\Auth; if (Auth::check()) { // 用户已经登录了... }
获取用户信息可以使用:
// 获取当前通过认证的用户... $user = Auth::user(); // 获取当前通过认证的用户 ID... $id = Auth::id();
不过,在使用普遍的laravel-admin扩展中,却只提到获取用户信息的相关方法:
获取当前用户对象 Admin::user(); 获取当前用户id Admin::user()->id; 获取用户角色 Admin::user()->roles; 获取用户的权限 Admin::user()->permissions; 用户是否某个角色 Admin::user()->isRole('developer'); 是否有某个权限 Admin::user()->can('create-post'); 是否没有某个权限 Admin::user()->cannot('delete-post'); 是否是超级管理员 Admin::user()->isAdministrator(); 是否是其中的角色 Admin::user()->inRoles(['editor', 'developer']);
没有判断登台用户是否已登录的方法,经实践,可以用以下方法判断:
@if (Admin::user()) @if(Admin::user()->isAdministrator()) id }}/edit">编辑 @endif @endif
通过先判断用户对象是否存在,再判断是否为超级管理员,两个步骤完成,这样就不会在没登录时报错了。