看到其他一些关于的帖子,发现可以使用Laravel EloquentleftJoin()
来执行带有倍数"on"子句的查询。我想知道(在laravel文档中没有发现任何内容(是否有可能构建一个带有多个"on"子句的热切加载的雄辩查询生成器
select * from tablea ta left join tableb tb on tablea.id = tableb.table_a_id and tableb.foo = ? left join tablec tc on tableb.id = tablec.table_b_id group by ta.name
类似于:
TableA::with([
'tableb'=> fn($q)=>$q->on()->on(),
'tableb.tablec'=> fn($q2)=>$q2->on()
])->get();
Laravel有这样的东西吗?还是我有使用leftJoin('tableb',fn($q)=>$q->on()->on())
??
是。可能的
应该是这样的:
$tableA = AppTableA::with(['tableb' => function ($query) {
$query->where('example', 'like', '%test%');
}])->get();
或类似以下内容。
$tableA = AppTableA::whereHas('tableb', function ($q) {
$q->where('tableb.date', '<', 'tablea.date'); // or whatever the columns are
})->with('tablec')->get();
根据表之间的关系进行修改。欲了解更多信息,请访问限制热切负载