есть 3 модели:
1.
User
2.
Organization
3.
Terminal
User и Organization связанны через таблицу l_user_organization
Соответственно в User связь описана так
public function getRelOrganizations()
{
return $this->hasMany(Organization::className(), ['id' => 'organization_id'])->viaTable('{{%l_user_organization}}', ['user_id' => 'id'])->orderBy(['name_ru'=>SORT_ASC]);
}
А в Organization связь к Terminal:
public function getRelTerminals()
{
return $this->hasMany(Terminal::className(), ['organization_id' => 'id'])->orderBy(['name'=>SORT_ASC]);;
}
Как теперь описать связь от User к Terminal через Organization?
Я знаю что можно получить доступ к свойствам Terminal так:
foreach(User::find()->where(['id'=>1])->one()->relOrganizations AS $organization) {
print_r($organization->relTerminals);
}
Но нужно бы так:
print_r(User::find()->where(['id'=>1])->one()->relTerminals);
И еще попутный вопрос как данные из связи получить как массив, так не работает:
User::find()->where(['id'=>1])->one()->getRelOrganizations()->asArray();