模块市场的部门岗位管理模块没有匹配数据权限控制

这个模块文件Department.php中控制器的select调用的getDepartment方法,但并没有匹配文档中的数据权限控制编码,导致启用$dataLimit时,查询的数据权限控制不生效。
getDepartment的原代码为

language 复制代码
protected function getDepartment($where = []): array
    {
        if ($this->keyword) {
            $keyword = explode(' ', $this->keyword);
            foreach ($keyword as $item) {
                $where[] = [$this->quickSearchField, 'like', '%' . $item . '%'];
            }
        }
        $data = $this->model->where($where)->order('weigh desc,id asc')->select()->toArray();
        return $this->tree->assembleChild($data);
    }

我改成下面这样,数据权限控制是有了,但快速搜索废了:

language 复制代码
    protected function getDepartment($where = []): array
    {
        if($this->keyword){
            $keyword = explode(' ', $this->keyword);
            foreach ($keyword as $item) {
                $where[] = [$this->quickSearchField, 'like', '%' . $item . '%'];
            }

        }
        list($where, $alias, $limit, $order) = $this->queryBuilder();
        $res = $this->model
            ->alias($alias)
            ->where($where)
            ->order($order)
            ->select();
        $data = $res->toArray();
        return $this->tree->assembleChild($data);

    }

php不太熟,哪里还要修改一下?

已采纳
钥匙
钥匙
这家伙很懒,什么也没写~
23小时前
复制代码
    protected function getDepartment($where = []): array
    {
        
        list($where, $alias, $limit, $order) = $this->queryBuilder();

if($this->keyword){
            $keyword = explode(' ', $this->keyword);
            foreach ($keyword as $item) {
                $where[] = [$this->quickSearchField, 'like', '%' . $item . '%'];
            }

        }
        $res = $this->model
            ->alias($alias)
            ->where($where)
            ->order($order)
            ->select();
        $data = $res->toArray();
        return $this->tree->assembleChild($data);

    }

这样应该就可以了.
list()里面是覆盖.
$where[] 是新增

1个回答默认排序 投票数排序
九月枫似火
九月枫似火
这家伙很懒,什么也没写~
21小时前

谢谢楼上。

请先登录
0
1
0
2