У меня есть таблица, содержащая родителей и детей. Я хочу, чтобы иметь возможность построить модель, чтобы она возвращала родителей и их детей, т.е. она ассоциируется с самим собой.
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 , которое позволяет легко управлять иерархическими данными .