首页 > 解决方案 > 如何让银行在 Laravel 中先拥有大量分支机构,然后再拥有少量分支机构

问题描述

我正在使用 Laravel Relation 列出我的银行分支机构和所有这些设置的层次结构如下所示

国家--hasMany->银行--hasMany->分支机构。

 $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 雄辩查询的简单解决方案,这对我来说将是一个很大的帮助。

标签: phpmysqllaraveleloquent

解决方案


大家好,我使用 withCount 的解决方案,这是我的解决方案查询

 $banks = Bank::where('country_id', $country->id)->withCount('branches')->having('branches_count', '>', 0)->orderBy('branches_count', 'DESC')->take(15)->get()->toArray();

推荐阅读