Немного запутался с алиасами и aliasToken ( ??. в запросах).
На сколько я понимаю ??. заменяется когда используются relations. А как быть в таком случае:
Есть AR для категорий, relations прописан так
public function relations() { return array( 'post'=>array(self::HAS_MANY, 'Publication', 'id'), 'blog'=>array(self::HAS_ONE, 'Blog', 'blog_id'), 'child'=>array(self::HAS_MANY,'Category','parent_id'), ); }
В контроллере вызываю так - Category::model()->head()->with('child')->together()->findAll();
Все работает прекрасно, получаю категории с подкатегориями.
Дальше решил добавить дефолтовое условие, что статус у категории должен быть 1 (открыта). Сделал через defaultScope:
public function defaultScope() { return array( 'condition'=>'status='.self::STATUS_OPENED, ); }
еще есть scope "head" для того чтобы вытащить только верхние категории
public function scopes() { return array( 'head'=>array( 'condition'=>'parent_id=0', ) ); }
И естественно вылетает ошибка, так как столбец status есть как для категории, так и для подкатегории. Если указать ??.status - то не подставляется алиас для категории.
Как решить такую проблему? может можно указать алиас для модели?