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 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 4

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

6年前 评论

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

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

6年前 评论
Aber

@klgd 谢谢 我看下

6年前 评论

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

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!