我正在使用 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 关注
- 106 浏览
添加回答
举报
0/150
提交
取消