SQL Query или Eloquent Query цикл foreach - PullRequest
0 голосов
/ 14 января 2020

У меня есть вопрос. Скажем, у меня есть две коллекции; CompanyOrders и User и нужно сделать все oop, чтобы выбрать всех пользователей, участвующих в заказах компании, как бы я это сделал? Пример запроса, который я ищу, будет представлен ниже в формате 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 и таблица пользователей.

Спасибо за ваше время, и я был бы очень признателен за любую помощь! Ура!

1 Ответ

1 голос
/ 14 января 2020

Если вы построили отношение

В вашей модели Пользователь:

    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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...