Еще раз:Sam Dark писал(а):Но вообще прямо совсем-совсем прямого аналога в Yii 2.0 нет.
1 В Yii1 through работает со всеми связями, кроме MANY_MANY (согласно доке Yii1)
2 В Yii2 via / viaTable работает только с HAS_MANY и MANY_MANY (терминалогия Yii1, в Yii2 - это hasMany())
3 Вы пишите "Я про via говорил, а не про viaTable", открываем доку: http://www.yiiframework.com/doc-2.0/gui ... ecord.html
В ней рассматривается именно пример MANY_MANY и говорится, что разницы между via и viaTable нет, кроме как то, что первая - в параметрах находится рилейшен, вторая - таблица:
"The difference between via() and viaTable() is that the former specifies the junction table in terms of an existing relation name while the latter directly the junction table."
Т.е. разницы с какими типами связей они работают, согласно доке, нет. (это подтверждается кодом: https://github.com/yiisoft/yii2/blob/ma ... y.php#L714 и https://github.com/yiisoft/yii2/blob/ma ... t.php#L103 просто в одном месте рилейшен есть, а в другом - создается) Вы говорите, что разница есть. Кто прав? И в чем тогда разница по вашему?
И главный вопрос темы: viaTable может работать с HAS_MANY (терминалогия Yii1)? Приведу пример наглядно, таблицы: users, photos, photos_albums. Можно с помощью viaTable получить список альбомов, в которые юзер загрузил свои фото? (например, альбомы "Природа" и "Транспорт")? С помощью via это сделать можно. Код не нужен, важен лишь ваш ответ: да / нет.