例如,我有3个表,而这些表有一个关系,
表A
- id
- 名称
表B
- id
- 表Id_A
- 表Id_C
表C
- id
- 名称
我使用的是表C,但我想使用query雄辩器按与表A中名称相同的请求名称搜索项目这就是查询,我使用的是laravel
$this->model->query()
->withWhereHas('tableB', function($query) use ($names) {
$query->tableB->where('name', 'LIKE', "%{$names}%");})
如何使用雄辩来修复使用过三张表的关系?
我认为您的关系名称应该是tableA
,而不是tableB。
public function tableA()
{
return $this->belongsToMany(TableAModel::class, 'TableB', 'tableId_C', 'tableId_A')
->where('TableA.status', CoreStatusEnum::ACTIVE);
}
你的查询是这样的。。
$this->model->query()
->withWhereHas('tableA', function($query) use ($names) {
$query->where('name', 'LIKE', "%{$names}%");
})
->get();