fastadmin嵌套关联查询
thinkPHP5嵌套关联查询
嵌套关联查询
A -> B -> C
A 表关联B表
B表关联C表
同时把A/B/C表相关的数据展现出来
B表的model
B表关联C表
我的C表是B表的自身关联。也是一个表,所以为C表
namespace app\admin\model\machine;
class CapacityStateList extends Model
{
/**
* 查询关联自身的标题
* @return \think\model\relation\BelongsTo
*/
public function pidtitle()
{
return $this->belongsTo('app\admin\model\machine\CapacityStateList', 'pid', 'id', [], 'LEFT')->setEagerlyType(1);
}
}
A表的model
A表关联B表
namespace app\admin\model;
class Machinelist extends Model
{
/**
* 查询关联 B 表的标题
* @return \think\model\relation\BelongsTo
*/
public function machinestate()
{
return $this->belongsTo('app\admin\model\machine\CapacityStateList', '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'},
先记录下来。
因篇幅问题不能全部显示,请点此查看更多更全内容
怀疑对方AI换脸可以让对方摁鼻子 真人摁下去鼻子会变形
女子野生动物园下车狼悄悄靠近 后车司机按喇叭提醒
睡前玩8分钟手机身体兴奋1小时 还可能让你“变丑”
惊蛰为啥吃梨?倒春寒来不来就看惊蛰
男子高速犯困开智能驾驶出事故 60万刚买的奔驰严重损毁