我正在使用 Laravel Relation 列出我的銀行分行和所有此設置的層次結構如下國家--有很多->銀行--有很多->分行。 $country = Country::where("iso2", $this->app->request->route()->parameter('country'))->first();這是國家/地區模型中銀行的關系代碼:public function banks(){ return $this->hasMany(Bank::class);}以及銀行模型中的分行關系代碼 public function branches(){ return $this->hasMany(Branch::class);}現在我的動機是我只想讓這個國家的 15 家銀行可驗證,但條件是擁有大量分支機構的銀行將在列表中名列前茅。您能為我提供任何帶有 Laravel 雄辯查詢的簡單解決方案嗎?這對我來說將是一個很大的幫助。
2 回答

GCT1015
TA貢獻1827條經驗 獲得超4個贊
大家好,我使用 withCount 來解決這個問題,這是我的解決方案查詢
$banks = Bank::where('country_id', $country->id)->withCount('branches')->having('branches_count', '>', 0)->orderBy('branches_count', 'DESC')->take(15)->get()->toArray();

慕碼人2483693
TA貢獻1860條經驗 獲得超9個贊
嘗試這個:
$banks = Bank::with(['branches'])
->map(function ($bank) {
$bank->num_branches = $bank->branches->count();
$bank;
})
->sortByDesc('num_branches')
->take(15);
- 2 回答
- 0 關注
- 143 瀏覽
添加回答
舉報
0/150
提交
取消