我有以下型号:
我想要的是所有组的数组,其中每个组包含属于它的客户端。
我能够通过以下代码实现这一目标:
Group::with('clients')->get();
现在我想只获取客户端状态属性为0的组和客户端。因此,如果组中有多个客户端,则结果不应包含状态为!= 1的客户端。此外,如果此条件为组返回0个客户端,则该组也不应包含在最终结果中。
到目前为止我尝试了什么:
Group::with(['clients' => function($query) {
$query->where('clients.status', '!=', 1);
}])->whereHas('clients', function($query) {
$query->where('clients.status', '!=', 1);
})->get();
不知何故,当我执行查询时,两个where-conditions都不适用。我错过了什么或做错了什么?
答案 0 :(得分:0)
根据laravel文档,您期望的结果应该是以下语句的结果:
Group::whereHas('clients', function($query) {
$query->where('status', '!=', 1);
})->get()
以下是参考:https://laravel.com/docs/5.5/eloquent-relationships#querying-relationship-existence