Взаимная связь has many через третью таблицу. В одну сторону могу вытащить инфу, а в другую — нет. Почему?
Классика: Статьи и тэги, связаны через третью таблицу.
$article->tags показывает все без проблем, а вот $tag->articles выдает либо ноль, либо ошибку: Getting unknown property: yii\db\ActiveQuery::articles
Связь из модели Тэгов:
public function getArticles()
{
return $this->hasMany(Article::className(), ['article_id' => 'id'])
->viaTable('article_tag', ['id' => 'tag_id']);
}
Связь из модели Статей
public function getTags()
{
return $this->hasMany(Tag::className(), ['id' => 'tag_id'])
->viaTable('article_tag', ['article_id' => 'id']);
}
Экшн поиска по тэгам, который выдает ошибку
public function actionSearchtag()
{
// Разбираем запрос
$search = Yii::$app->request->get('search');
// Обрезаем пробелы
$search = str_replace(' ', '', $search);
// Поисковый запрос с поиском и обрезанием пробелов
$tag = Tag::find()->where(['like', 'replace(title, " ", "")', $search]);
$articles = $tag->articles; // вот на эту строчку ругается
...
}
Документацию по связям проштудировал, везде говорится, что такой зависимости достаточно для подобного обращения. Не пойму я дурак или лыжи не едут. Заранее спасибо.