FastAdmin多表联查

关于fastadmin夺标联查我觉得我们要首先了解他们生成的目录

微信号码:qq1571746700 欢迎添加

fastadmin会一键生成controller层,model层,view层和对应的validate以及js

前端所显示的内容以及你多表联查所查出的内容都在生成的js中
FastAdmin多表联查_第1张图片
对应数据表的名称以及你一键生成时的名字生成的js会显示你数据表的对应字段的内容
FastAdmin多表联查_第2张图片
如果我们要进行多表联查,那么我们首先要做的就是在C层新加index,因为默认生成的网页是没有index的

我们先去
在这里插入图片描述
在这个文件中有一个index

public function index()
    {
        //设置过滤方法
        $this->request->filter(['strip_tags']);
        if ($this->request->isAjax()) {
            //如果发送的来源是Selectpage,则转发到Selectpage
            if ($this->request->request('keyField')) {
                return $this->selectpage();
            }
            list($where, $sort, $order, $offset, $limit) = $this->buildparams();
            $total = $this->model
                ->where($where)
                ->order($sort, $order)
                ->count();

            $list = $this->model
                ->where($where)
                ->order($sort, $order)
                ->limit($offset, $limit)
                ->select();

            $list = collection($list)->toArray();
            $result = array("total" => $total, "rows" => $list);

            return json($result);
        }
        return $this->view->fetch();
    }

复制下来这个index方法,进行关联查询,还需要声明一行代码
//当前是否为关联查询
$this->relationSearch = true;

添加到过滤上面就可以,进行关联查询,我们要做的就是进行修改index了
FastAdmin多表联查_第3张图片
index中进行查询,在where前加入with,里面填入你要关联查询的表
C层的操作到这就结束了
那么接下来我们进入M层

    public function school()
    {
        return $this->belongsTo('School', 'school_id', 'id', [], 'LEFT')->setEagerlyType(0);
    }

    public function schooladdress()
    {
        return $this->belongsTo('Schooladdress', 'schoole_address_id', 'id', [], 'LEFT')->setEagerlyType(0);
    }

我们要查这两个表的内容,生命两个方法,方法名要对应C层with中的名字,内容就是id对应其他表id,进行查询
js中我们要做的就是
在这里插入图片描述
我们M层的方法名拼接上要显示的字段,现在就查询成功啦
M层要查询几个表,就在C层with后面再添加几个要查询的对应表名称
FastAdmin多表联查_第4张图片

多表联查成功

你可能感兴趣的:(fastadmin)