cakephp model association / join with same table

У меня есть таблица, содержащая родителей и детей. Я хочу, чтобы иметь возможность построить модель, чтобы она возвращала родителей и их детей, т.е. она ассоциируется с самим собой.

ID Name ParentID 1 Parent 0 2 Child1 1 3 Child2 1 4 Parent2 0 5 Child3 4 

Я использую следующий SQL

 SELECT grp2.id, grp2.name FROM wp_bp_groups grp1 LEFT JOIN wp_bp_groups grp2 ON grp2.parent_id = grp1.id WHERE grp1.id = '$parent_id' ORDER BY grp2.name 

Вы можете попробовать что-то вроде этого:

 <?php class Group extends AppModel { var $name = 'Group'; var $belongsTo = array( 'ParentGroup' => array('className' => 'Group', 'foreignKey' => 'parent_id' ), ); var $hasMany = array( 'ChildGroup' => array('className' => 'Group', 'foreignKey' => 'parent_id' ), ); } ?> 

Вы ищете поведение Tree , которое позволяет легко управлять иерархическими данными .