我有一個具有 hasMany 關系的用戶模型。
用戶有許多未審閱的檔案,我試圖獲取未審閱檔案的總數。我就是這樣做的。我只是想知道是否有更好的方法。
$users = User::families()->whereHas('unreviewedcovidfiles')->withCount('unreviewedcovidfiles')->get();
$totalfiles = 0;
foreach($users as $user){
$totalfiles = $user->unreviewedcovidfiles_count;
}
return $totalfiles;
uj5u.com熱心網友回復:
假設您在模型上有user關系。unreviewedcovidfiles
您可以直接從模型中獲取計數,unreviewedcovidfiles并通過whereHas以下方法按租戶過濾用戶:
$totalfiles = Unreviewedcovidfile::whereHas('user', function($query){
$query->families();
})->count();
https://laravel.com/docs/8.x/eloquent-relationships#querying-relationship-existence
或者,使用sum集合的方法:
$users = User::families()->whereHas('unreviewedcovidfiles')->withCount('unreviewedcovidfiles')->get();
$totalfiles = $users->sum('unreviewedcovidfiles_count');
https://laravel.com/docs/8.x/collections#method-sum
uj5u.com熱心網友回復:
hasManyThrough您可以使用關系來實作這一點。定義關系后,您可以簡單地使用count()關系。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/412348.html
標籤:
上一篇:未知列使用Laravel時
