cakephp - 如何使用与自身关联的表?

标签 cakephp associations

如何使用与自身关联的表? 我使用 cakephp,表格是部分:

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';
}

我在两个表中使用属于有很多关联。但我不能在这个例子中使用。 感谢您的帮助。

最佳答案

一旦您了解了窍门,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]
    ),
    ...
  )
)

关于cakephp - 如何使用与自身关联的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7944650/

相关文章:

php - CakePHP 3 保存 HasOne 关联

php - 如何为嵌套关系构建适当的 CakePHP 查询

php - 每个查询中的条件,CakePHP 2.5.4

ruby-on-rails - 选择类别 : Rails 4 many to many association

ruby-on-rails - Rails 4 预加载多个表

ruby-on-rails - Rails .includes() 返回 'undefined method'

php - CakePHP - 为什么 Model::save Cause() 是 INSERT 而不是 UPDATE?

php - CakePHP,一键发布到两个 URL

entity-framework - Entity Framework 是否可以在主键和外键之间添加关联

ruby-on-rails - 使用 HABTM 和 has_many :through - Need Help Identifying Where I've Gone Wrong