關聯統計
| 版本 | 新增功能 |
|---|---|
| 5.0.7 | 關聯統計支持指定統計屬性名 |
關聯統計(V5.0.5+)
有些時候,并不需要獲取關聯數據,而只是希望獲取關聯數據的統計(關聯統計僅針對一對多或者多對多的關聯關系),這個時候可以使用withCount方(fang)法進行制定關聯的(de)統計。
$list = User::withCount('cards')->select([1,2,3]);
foreach($list as $user){
// 獲取用戶關聯的card關聯統計
echo $user->cards_count;
}
關聯統計功能會在模型的對象屬性中自動添加一個以“關聯方法名+_count”為名(ming)稱的動態屬性來保存相關(guan)的關(guan)聯統(tong)計數(shu)據(ju)。
如果需(xu)要對(dui)關聯統(tong)計進(jin)行(xing)條件過濾,可(ke)以使(shi)用
$list = User::withCount(['cards'=>function($query){
$query->where('status',1);
}])->select([1,2,3]);
foreach($list as $user){
// 獲(huo)取用(yong)戶關聯的card關聯統(tong)計(ji)
echo $user->cards_count;
}
一(yi)對一(yi)關聯(lian)關系使用(yong)關聯(lian)統(tong)計(ji)是(shi)(shi)無(wu)效的,一(yi)般可以(yi)用(yong)exists查詢來判斷(duan)是(shi)(shi)否存在關聯(lian)數據。
V5.0.7版(ban)本以上,支持給(gei)關(guan)聯統計(ji)指定統計(ji)屬性名(ming),例如(ru):
$list = User::withCount(['cards'=>'card_count'])->select([1,2,3]);
foreach($list as $user){
// 獲取用戶關(guan)聯的card關(guan)聯統計
echo $user->card_count;
}
文檔最后更新時間:2018-06-09 15:43:53
← 關聯預載入
未解決你的問題?請到「問答社區」反饋你遇到的問題
