cakephp模型关联/加入同一个表

时间:2011-03-14 21:40:27

标签: php cakephp cakephp-appmodel

我有一张包含父母和孩子的桌子。我希望能够建立模型,以便它返回父母和他们的孩子,即它与自己联系。

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

2 个答案:

答案 0 :(得分:6)

您可以尝试这样的事情:

<?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' 
            ), 
    ); 
} 
?>

答案 1 :(得分:2)

您正在寻找Tree behaviour,以便轻松管理hierarchical data