使用单表的多级别类别

时间:2014-01-22 17:12:49

标签: php cakephp database-design cakephp-2.4 multi-level

我有一个如下表格,它以多个级别存储类别。

product_categories (id, name, pid, created, modified)
  

pid = parentID,它是对同一个表的ID的引用。它是0   当它是父类别时。

我不知道如何使用CakePHP中的hasMany和belongsTo关系来配置它。

有关如何使其发挥作用的任何指示?

public $hasMany = array(
    'SubCategory' => array(
        'className' => 'ProductCategory',
        'foreignKey' => 'id',
        'dependent' => false,
        'conditions' => '',
        'fields' => '',
        'order' => '',
        'limit' => '',
        'offset' => '',
        'exclusive' => '',
        'finderQuery' => '',
        'counterQuery' => ''
    )
);

public $belongsTo = array(
    'ProductCategory' => array(
        'className' => 'ProductCategory',
        'foreignKey' => 'pid',
        'conditions' => '',
        'fields' => '',
        'order' => ''
    )
);

1 个答案:

答案 0 :(得分:1)

如果您想在一个表格中使用,您可以使用包含idparent_id字段的最简单表格(有些像您一样)并使用find('threaded');

或者

使用TreeBehavior,它构建在Cake的核心。

对于此解决方案,没有为一个模型使用两个别名/关系。