如何使用与自身关联的表? 我使用cakephp和table是Section:
create table SECTIONS
(
SECTIONID int(11) not null auto_increment,
TITLE char not null,
CONTROLID int(11) not null,
SECTIONPARENTID int(11),
primary key (SECTIONID)
)
此表与自身关联,我使用属于,有很多关联,我的模型是:
class Section extends AppModel {
var $name = 'Section';
var $primaryKey = 'SECTIONID';
var $displayField = 'TITLE';
}
我使用属于而在两个表中有很多关联。但我不能在这个例子中使用。 谢谢你的帮助。
答案 0 :(得分:6)
一旦你知道诀窍,自我参照模型在Cake中很简单,但是你不能通过不使用Cake命名约定来为自己做任何好处。我假设您使用的是无法控制的数据源: - )
Class Section extends AppModel {
var $belongsTo = array(
'Parent'=>array(
'className'=>'Section',
'foreignKey'=>'SECTIONPARENTID'
)
);
var $hasMany = array(
'Children'=>array(
'className'=>'Section',
'foreignKey'=>'SECTIONPARENTID'
)
);
}
当您运行查询,例如$ this-> Section-> find(' first')时,您将获得一个如下所示的返回数组:
section => array(
SECTIONID,
...
'Parent'=>array(
'SECTIONID',
....
),
'Children'=>array(
[0] => array(
[SECTIONID]
),
[1] => array(
[SECTIONID]
),
...
)
)