-1

我有一个 HABTM 关系,我想从产品表中获取类别表的嵌套数据,例如这个产品数组:

array(
    (int) 0 => array(
        'id' => (int) 1,
        'name' => 'a',
        'categories' => array(
            (int) 0 => array(
                'id' => (int) 1
            ),
            (int) 1 => array(
                'id' => (int) 2
            )
        )
    ),
    (int) 1 => array(
        'id' => (int) 2,
        'name' => 'b',
        'categories' => array(
            (int) 0 => array(
                'id' => (int) 1
            )
        )
    )
)

这可以用蛋糕吗?

编辑:我将尝试进一步解释我想要做什么。

请耐心等待,我是蛋糕新手,无法掌握它。

我有一个“产品”表:

    public $hasAndBelongsToMany = array(
        'Category' => array(
            'className' => 'Category',
            'joinTable' => 'categories_sculptures',
            'foreignKey' => 'sculpture_id',
            'associationForeignKey' => 'category_id',
            'unique' => 'keepExisting'
        )
    )

和一个类别表:

    public $hasAndBelongsToMany = array(
        'Sculpture' => array(
            'className' => 'Sculpture',
            'joinTable' => 'categories_sculptures',
            'foreignKey' => 'category_id',
            'associationForeignKey' => 'sculpture_id',
            'unique' => 'keepExisting'
        )
    );

和一个类别产品表:

    public $belongsTo = array(
    'Category' => array(
        'className' => 'Category',
        'foreignKey' => 'category_id',
        'conditions' => '',
        'fields' => '',
        'order' => ''
    ),
    'Sculpture' => array(
        'className' => 'Sculpture',
        'foreignKey' => 'sculpture_id',
        'conditions' => '',
        'fields' => '',
        'order' => ''
    )
);

我想建立一个雕塑的视图表,并在每一行中显示每个雕塑所在的类别(可能不止一个)。由于我是蛋糕新手,所以我不知道该怎么做。如果我只是查询 mysql,我可以使用 group_concat 或嵌套选择来获取此信息,或者通过循环通过第一个数组并通过雕塑键查询 category_sculpture 表并将结果添加到第一个数组来低效。但我想知道以蛋糕方式获得此结果的最佳方法。

4

1 回答 1

0

我找到了满足我需求的答案:

$this->Sculpture->recursive = 1;
于 2012-10-15T15:31:10.353 回答