后台菜单RBAC手动更新问题

问题咨询 · cqslxz · 于 5年前 发布 · 1841 次阅读

你好,因为我们在系统原基础上做了代码调整,所以不能进行自动更新。现目前我是用的版本是1.5.1.1,我想手动更新下这个bug,我在看了代码后是因为缓存没有更新,, $resources 读的是原先的缓存。请问下你是怎么修改的?我在GitHub历史中没看到。谢谢

共收到 7 条回复 问题提问
Fecmall#15年前 0 个赞

后台刷新下缓存就可以了

cqslxz#25年前 0 个赞

你好,我刷新了的,就是没用没清除掉那个缓存

Fecmall#35年前 0 个赞

那应该不是缓存的问题,是代码的问题。

cqslxz#45年前 0 个赞

是缓存的问题,我注释`php public function getRoleResourcesByRoleIds($role_ids){

    if (empty($role_ids)) {
        return [];
    }
    sort($role_ids);
    $role_ids_cache_str = self::ADMIN_ROLEIDS_RESOURCES . implode('-', $role_ids);
    $resources = Yii::$app->cache->get($role_ids_cache_str);//echo $role_ids_cache_str;
   if (!$resources) {
        // 通过role_ids 得到url_keys
        $roleUrlKeys = Yii::$service->admin->roleUrlKey->coll([
            'where'			=> [
                ['in', 'role_id',  $role_ids]
            ],
            'fetchAll' => true,
        ]);
$resources = Yii::$app->cache->get($role_ids_cache_str);这行代码让他直接读数据库就行
Fecmall#55年前 0 个赞

@qq3332794598 #4楼

如果是缓存,后台可以刷新缓存的

你也可以通过redis命令清空redis里面的缓存信息 flushall

你排查一下问题把

cqslxz#65年前 0 个赞

你好,我今天测试了下后台缓存redis的清除,结果如下,在后台选择清除appadmin 的缓存后明显没有起到效果,只清除了我自己测试加的一个数据。其他的并没有被清除掉。所以我在后台修改权限后并没有删除原来的,还是用的以前的。

Fecmall#75年前 0 个赞

默认是可以清空缓存的,不清楚你进行了什么改动导致的,自己排查问题吧

环境等很多因素可能导致出现不同的问题,排查一下原因吧。

代码都是开源的,自己debug一下找找代码逻辑排查原因

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
Your Site Analytics