我有一个用 cakephp 2.0 开发的网站。我有一个与 hasMany 属性相关的表“产品”,以及与产品相关的 HABTM。一个产品可以包含许多产品,而该产品可以包含许多产品。我可以拥有多个级别的产品。为了建立这种关系,我使用了这个模型(解释为这个问题:cakephp HABTM same model):
class Product extends AppModel {
public $name = 'Product';
public $useTable = 'products';
public $belongsTo = 'User';
public $actsAs = array('Containable');
public $hasAndBelongsToMany = array(
'Ingredient' => array(
'className' => 'Product',
'joinTable' => 'ingredients_products',
'foreignKey' => 'product_id',
'associationForeignKey' => 'ingredient_id',
'unique' => true
)
);
}
我知道如何检索产品示例:我有一个包含其他产品的产品,我使用条件进行查找,并使用它们的属性检索所有数据,如下所示:
$this->set('product',$this->Product->find('all', array(
'contain' => array(
'Property',
'IngredientProduct'
),
'conditions' => array('id' => $id)
)));
(只是一个例子我不知道的查询是否好取决于许多事情只是一个例子)
但是,如果我在我的产品中找到 3/4 产品,并且如果找到的产品包含其他产品,我该怎么做?因为我不知道我有多少“级别”,所以我可以拥有 1 级或 6 级的产品。一个产品包含许多产品,这个找到的产品包含其他产品等等。我怎样才能做到这一点并为每个产品检索其属性?这是一个递归查询,但问题是我不知道我有多少级别。一些想法?谢谢