fastadmin嵌套关联查询
thinkPHP5嵌套关联查询
笔记记录
嵌套关联查询
A -> B -> C
A 表关联B表
B表关联C表
同时把A/B/C表相关的数据展现出来
B表的model
B表关联C表
我的C表是B表的自身关联。也是一个表,所以为C表
namespace appadminmodelmachine;
class CapacityStateList extends Model
{
/**
* 查询关联自身的标题
* @return thinkmodelrelationBelongsTo
*/
public function pidtitle()
{
return $this->belongsTo('appadminmodelmachineCapacityStateList', 'pid', 'id', [], 'LEFT')->setEagerlyType(1);
}
}
A表的model
A表关联B表
namespace appadminmodel;
class Machinelist extends Model
{
/**
* 查询关联 B 表的标题
* @return thinkmodelrelationBelongsTo
*/
public function machinestate()
{
return $this->belongsTo('appadminmodelmachineCapacityStateList', 'machine_list_state_list_id', 'id', [], 'LEFT')->setEagerlyType(1);
}
}
A的控制器
public function index()
{
$this->relationSearch=true;
$this->request->filter(['strip_tags', 'trim']);
if (false === $this->request->isAjax()) {
return $this->view->fetch();
}
if ($this->request->request('keyField')) {
return $this->selectpage();
}
$list = $this->model
->with(['machinestate'=>['pidtitle']])
->field('*')
// ->alias('a')
// ->field(['a.*','b.id','b.title title','b.pid','c.id id2','c.title title2','c.pid pid2'])
// ->join('machine_capacity_state_list b',' a.machine_list_state_list_id=b.id ','left')
// ->join('machine_capacity_state_list c','b.pid=c.id','left')
->where("1=1")
->where($where)
->order($sort, $order)
->paginate($limit);
$result = ['total' => $list->total(), 'rows' => $list->items()];
return json($result);
}
原先是想 用 join 进行关联,但是发现用 with更简洁一些。
前端的显示,但是用fastadmin框架 的查询用不了,目前还没搞懂哪里的问题
{field: 'machinestate.pidtitle.title', align: 'left', title: __('title2'), operate: 'LIKE'},
{field: 'machinestate.title', align: 'left', title: __('title'), operate: 'LIKE'},
先记录下来。
原文地址:https://blog.csdn.net/qq_42580037/article/details/134802109
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_47492.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。