Laravel 5.1 / Eloquent: как использовать 3-ю таблицу для выбора из второй таблицы

У меня есть три таблицы: пользователи, purchase_orders и одобрения.

Один заказ на покупку должен быть одобрен несколькими пользователями.

Когда новый заказ на покупку создается, я тоже создаю 3 в ожидании разрешения, принадлежащие этому ПО.

утверждения стол имеет поле allowed_user_type это определяет, кто может одобрить это.

Я не могу понять, каков красноречивый способ выбора в ожидании заказы которые могут быть утверждены конкретным пользователем, так как они определяются из утверждения Таблица.


Пока я могу вытащить в ожидании утверждения из таблицы утверждений для пользователя со следующим в модели пользователя.

public function approvals_pending()
{
return $this->hasMany('App\Approval', 'allowed_user_type', 'user_type')
->where('approved', '=', 0);
}

Вопрос в том, как мне совместить это с теоретическим фильтром?

В идеале я хотел бы написать:

return $this->hasMany('App\PO')->whereIn('id', '=', $this->approvals_pending()->get()->po_id);

Или что-то типа того…

Любые идеи очень приветствуются.

1

Решение

ОК, для всех, кто заинтересовался, я нашел решение:

Это очень близко к тому, что я думал, что мне придется написать.

списки Метод в основном создает один массив из выбранного поля, поэтому его можно подключить непосредственно к в которой метод вроде так:

    return \App\PO::whereIn('id', $this->approvals_pending()->lists('po_id'));

Я не знаю, является ли это наиболее красноречивым способом сделать это, но это работает.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]