我需要计算来自相同关系的两个不同条件的结果,但它以相同的名称返回。
Model::where('types_id', $specialism_id)
->withCount(['requests' => function ($query) {
$query->where('type', 1);
}])
->withCount(['requests' => function ($query) {
$query->where('type', 2);
}])
我可以使用 $model->requests_count
访问 withCount
,但是因为它正在查询相同的关系,所以它似乎覆盖了它:
select count(*)
from `requests` where `requests`.`id` = `model`.`id`
and `type` = '1') as `requests_count`,
(select count(*) from `requests` where `requests`.`id` = `model`.`id`
and `type` = '2') as `requests_count`
如何为多个 withCount
指定名称?
最佳答案
现在你可以这样做了
Model::where('types_id', $specialism_id)
->withCount(['requests as requests_1' => function ($query) {
$query->where('type', 1);
}, 'requests as requests_2' => function ($query) {
$query->where('type', 2);
}])
关于php - Laravel 多个 withCount 在同一个关系上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41985587/