Cakephp, PHP

Tự tham chiếu chính bảng đó trong cakephp 2

Với bảng có id và parent_id ta có trick sau để tham chiếu chính nó
tạo ra bảng sau

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)
)

trong model của cakephp 2

Class Section extends AppModel {

var $belongsTo = array(
'Parent'=>array(
'className'=>'Section',
'foreignKey'=>'SECTIONPARENTID'
)
);

var $hasMany = array(
'Children'=>array(
'className'=>'Section',
'foreignKey'=>'SECTIONPARENTID'
)
);

}

Khi chạy câu query chẳng hạn như $this->Section->find(‘first’) sẽ lấy được mảng như dưới

section => array(
SECTIONID,
...
'Parent'=>array(
'SECTIONID',
....
),
'Children'=>array(
[0] => array(
[SECTIONID]
),
[1] => array(
[SECTIONID]
),
...
)
)

Ngoài cách này ra thì sử dụng Tree Behaviors cũng là 1 cách mà sau này người viết sẽ hướng dẫn chi tiết sau