cakephp模型与同一表的关联/联接
我有一张桌子,里面有父母和孩子。我希望能够构建模型,使其返回父母及其子女,即它与自身关联cakephp模型与同一表的关联/联接,php,cakephp,cakephp-model,Php,Cakephp,Cakephp Model,我有一张桌子,里面有父母和孩子。我希望能够构建模型,使其返回父母及其子女,即它与自身关联 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 WHE
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'
),
);
}
?>
您正在寻找的,它允许轻松管理 谢谢大家!!如果我想以更好的结构化方式返回组,比如树层次结构,该怎么办。下面的答案提到了树行为,但是如果我不想更改模式呢。我想模仿树的行为。现在它返回所有组,包括具有空子组数组的子组。我曾考虑可能在模型内部重建数组,但有更好的方法吗?find find('threaded')。这实际上使您的解决方案变得多余。嗯,是的,这可能是解决您的问题的更优雅的解决方案-我不想建议它或树行为,因为我自己并没有真正使用它们。不过我得找个时间自己调查一下!感谢grt的回答,但是如何在选择框中填入所有要选择的父id?i、 e.如果是气体组(a、b、c),那么在添加记录时如何使选择框像这样abc