我正在寻找雄辩的或原始的sql,以获得我的->withCount
中两个的和。我需要能够做到这一点而不必->get()
记录,它需要使用雄辩的而不是laravels收集方法来实现。
我有以下资料:
$owners = User::active()
->where(function($q){
$q->whereHas('primaryContractOwner')
->orWhereHas('primaryVendorOwner');
})
->withCount([
'primaryContractOwner',
'primaryVendorOwner'
]);
我需要得到
primary_contract_owner
计数和primary_vendor_owner
计数的和。我尝试了以下操作,但找不到primary_contract_owner_count
列// This one throws the error
$owners = User::active()
->where(function($q){
$q->whereHas('primaryContractOwner')
->orWhereHas('primaryVendorOwner');
})
->withCount([
'primaryContractOwner',
'primaryVendorOwner'
])
->select(['user.*', DB::raw('primary_contract_owner_count + primary_vendor_owner')]);
最佳答案
https://laravel.com/docs/5.7/eloquent-relationships#counting-related-models
我相信你的计数将被称为primaryContractOwner_count
和primaryVendorOwner_count
。您可以在不检查DB::raw部分的情况下运行查询。