К примеру у нас есть 3 модели Category Object File
В Category описана связь (object_category - связочная таблица):
public function relations()
{
return array(
'rel_object'=>array(
self::MANY_MANY,
'Object',
'object_category(n_id, o_id)'
)
);
}
В Object описана связь до файлов:
public function relations()
{
return array(
'rel_file'=>array(
self::HAS_MANY,
'File',
'',
'on'=>"rel_file.owner_id=t.id AND rel_file.type='gallery'"
)
);
}
Если обратиться к связи так то все работает:
$result = Object::model()->with('rel_file')->findByPk(1);
print_r($result->rel_file);
НО если не на прямую Object запросить а через rel_object в Categoty:
$result = Category::model()->with('rel_object')->findByPk(1);
foreach ($result->rel_object AS $object) {
print_r($object->rel_file);
}
Будет ошибка что не AR не знает t.id видимо потому что если идти через 2 связи то таблица object уже имеет другой алиас отличный от t который теперь присвоен таблице category???
Вообще как правильно строить скваозные связи???