fastadmin 的多表联合查询,仅支持A-B,A-C,不支持 A-B-C 查询。两张表及以上关联查询时,先在model层写方法
例如,主表 user,关联 apply_project表和user_group表,在user model层写下如下两个方法。其中belongsto后,第一个参数为表名,第二个参数为user表内 关联字段,第三个参数为要关联的表字段
public function apply()
{
return $this->belongsto("ApplyProject",'id','userid',[],'LEFT')->setEagerlyType(0);
}
public function group()
{
return $this->belongsTo('UserGroup', 'user_group', 'id', [], 'LEFT')->setEagerlyType(0);
}
在控制器内,利用with连接
$list = $this->model->with(['group','apply'])->where($where)->select();
with 内不写关联表名,写在model定义的方法名。多个表 用 [ ] 。
查询返回的值,两个表 的数据是以数据形式包含在内,键值为定义的方法名,例中返回格式如图
在前端,就是文件则是
{field: 'apply.batch', title: __('报考')},