-1

我有个问题。假设我有两个系列;CompanyOrders并且User需要做一个循环来获取公司订单中涉及的所有用户,我该怎么做?我正在寻找的查询示例将在下面以 foreach 格式提供。

$companyOrders = CompanyOrders::where('id', $company_id)->get();
$users = [];
foreach($companyOrders as $companyOrder){
  $user = User::where('id', $companyOrder['user_id'])->first();
  array_push($users, $user);
}

现在我的下一部分将无法工作,除非我的 $users 实际上是一个集合。因此,问题是,有没有办法查询这个,以便$users = User::where(filters all users who are in various different company orders and gives me all in return)->get();

注意事项

CompanyOrders 有 user_id,它是 company_orders 表和 users 表之间的链接。

感谢您抽出宝贵时间,非常感谢您提供的任何帮助!干杯!

4

1 回答 1

1

如果你建立了关系

在您的模型用户中:

    public function companyOrders()
    {
        return $this->hasMany(\App\CompanyOrders::class);
    }

在您的 CompanyOrders 模型中:

    public function user()
    {
        return $this->belongsTo(\App\User::class);
    }

您可以使用whereHas通过以下方式查找拥有这些 companyOrders 的用户$company_id

User::whereHas('companyOrders', function($query) use ($company_id) {
    $query->where('id', $company_id);
})
->get();
于 2020-01-14T08:53:17.060 回答