Adobe
@Adobe
php developer

Как составить связи через trhough в Yii на 4 таблицы?

Пол дня бился) Я понимаю, что можно запрос сделать SQL. И я его написал:
SELECT
              DISTINCT pavT.name
            FROM
              Buildings AS b
            JOIN Pavilions AS p ON p.building_id = b.id
            JOIN PavilionsTypes AS pt ON p.id = pt.pavilion_id
            JOIN PavTypes AS pavT ON pt.type_id =  pavT.id
            AND b.id = 1


Но хочется сделать именно через отношения (relation)

Задача в том, что я обращаюсь к одному Building и получаю все Типы товаров, которые там продаются.

У меня есть Buildings (строения), которые имеют много Pavilions (павильоны). У каждого павильона может быть много PavTypes (Типы продаваемых там товаров), через таблицу PavilionsTypes (MANY_MANY)
bfbe8f5593b142f0abd1cc521e292f60.png
class Buildings extends CActiveRecord
{
  public function relations()
  {
    return array(
      'pavilions' => array(self::HAS_MANY, 'Pavilions', 'building_id'), //тут все очевидно
      'actualPavTypes' => array(self::HAS_MANY, 'PavTypes', 'building_id', 'through' => 'pavilions'),
    );
  }
}

Т.е. в связи actualPavTypes, я ожидаю получить пачку PavTypes
  • Вопрос задан
  • 140 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы