Таблица пользователей содержит родителей, потомков. Как их извлекать?
Изначально мне нужно было только знать потомков родителей, потому я сделал вот такой код в модели user:
'parent'=>array(self::HAS_ONE, 'AgencyAdvertRelations', 'parent_id', 'joinType'=>'INNER JOIN'),
'children'=>array(self::HAS_MANY, 'User', 'childe_id', 'through'=>'parent', 'joinType'=>'INNER JOIN'),
и в компоненте его извлекал
User::model->with('children')->FindByPk($id);
потом мне понадобилось в другом месте проверять соответствие родителю
User::model->with('parent')->FindByPk($id);
всегда возвращал NULL
потому я переделал модель вот так:
'parent_connector'=>array(self::HAS_ONE, 'AgencyAdvertRelations', 'parent_id', 'joinType'=>'INNER JOIN'),
'children'=>array(self::HAS_MANY, 'User', 'childe_id', 'through'=>'parent_connector', 'joinType'=>'INNER JOIN'),
'children_connector'=>array(self::HAS_ONE, 'AgencyAdvertRelations', 'childe_id', 'joinType'=>'INNER JOIN'),
'parent'=>array(self::HAS_ONE, 'User', 'parent_id', 'through'=>'children_connector', 'joinType'=>'INNER JOIN'),
возникает вопрос - не костыль ли это? И если это так, то как было бы сделать это верно?