Zizaco/entrust 权限控制支持 auth guard 指定分组权限控制么?

项目里面用户 Auth 验证是分开的,后台用的 Auth::guard ('admin')->user () 来获取用户信息,权限控制用的 https://github.com/Zizaco/entrust

判断某个用户是否有某个权限,用如下方法写是可以的

//写法1
Auth::guard('admin')->user()->can('admin.post.create'); //true

换成这种写法就不行

//写法2
Entrust::can('admin.post.create'); //false

在 blade 里面这样写也是不行的

//写法3
@permission('admin.post.create')
    I can create
@endpermission

调试发现,vendor/zizaco/entrust/src/Entrust/EntrustFacade.php 这个函数的 can 里面的 $this->user 打印出来是 null

/**
 * Check if the current user has a permission by its name
 *
 * @param string $permission Permission string.
 *
 * @return bool
 */
public function can($permission, $requireAll = false)
{
    if ($user = $this->user()) {
        return $user->can($permission, $requireAll);
    }
    return false;
}

怎样才能在 auth 是多个分组的情况下也支持第二、三种写法呢?目前暂时用下面这个写法实现了,还有别的比较好的方法么?

//php 文件
$adminUserinfo = Auth::guard('admin')->user();

//blade 模板
@if($adminUserInfo->can('admin.post.create'))
     <a>create</a>
@endif
Aber
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 4

不支持的,首先配置文件里就没有支持.

7年前 评论

https://github.com/ScoLib/admin/blob/maste...

你可以参考一下我的这个 auth 的中间件,认证时需要指定 guard 的

7年前 评论
Aber

@klgd 谢谢 我看下

7年前 评论

楼主解决了吗? 我也遇到了这个问题,求指教

7年前 评论