Yii2 — как сделать двойную реляцию?

Задача такая, есть 3 таблицы: articles, tags и articles_tags (таблица связей)

articles_tags содержит 3 колонки:
- id
- article_id
- tag_id

Нужно сделать такую реляцию, которая бы позволила обратиться из articles к tags через articles_tags

К примеру, есть статья о деревьях (id=1) и у нее 2 тега (дерево (tag_id=1) и дупло (tag_id=2)), в таблице связей у нас будет 2 записи:
1 - 1 (тег дерево для статьи 1)
1 - 2 (тег дупло для статьи 1)

Мне нужно получить все теги для моей статьи, я написал вот такой геттер:
public function getTags()
    {
        return $this->hasMany(ArticlesTags::className(), ['article_id' => 'article_id']);
    }


Но походу это дело только для таблицы связей, а вот как еще получить и сами теги ?
На чистом sql это проще, 2 джоина, а вот как это сделать средствами Yii2 ?
  • Вопрос задан
  • 3387 просмотров
Решения вопроса 1
metamorph
@metamorph
Вообще в документации это подробно написано.
См. viaTable и via:
https://github.com/yiisoft/yii2/blob/master/docs/g...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы