HDApache
@HDApache
PHP программист

Как в Yii 1.x можно описать связь через связь?

К примеру у нас есть 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???

Вообще как правильно строить скваозные связи???
  • Вопрос задан
  • 2497 просмотров
Решения вопроса 1
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы