Для связей подобного рода (все записи тега, или все теги записи с использованием промежуточных таблиц) вам наверное лучше будет использовать viaTable.
для модели Article получение тегов будет выглядеть так:
public function getTags()
{
return $this->hasMany(Tags::className(), ['id' => 'tag_id'])
->viaTable('{{%article_tag}}', ['article_id' => 'id']);
}
Ну и для тега (в модели Tags) получение статей, использующих этот тег:
public function getArticles()
{
return $this->hasMany(Article::className(), ['id' => 'article_id'])
->viaTable('{{%article_tag}}', ['tag_id' => 'id']);
}
Использовать можно будет так:
$tag->articles;//результат - массив моделей статей
где $tag - например
$tag = Tags::findOne(['url' => $tag)
, естественно после findOne не забываем проверить $tag, чтобы при случае его отсутствия не получить UnknownPropertyException