Cakephp HABTM删除额外的字段

时间:2012-08-02 12:28:16

标签: php cakephp has-and-belongs-to-many

我有使用HABTM关系连接的名为地方类别的模型。现在,当我从 Place 中读取特定字段时,我会在结果中获得其他字段。

array(
'Place' => array(
    'id' => '8'
),
'Category' => array(
    (int) 0 => array(
        'id' => '2',
        'CategoriesPlace' => array(
            'id' => '673',
            'place_id' => '8',
            'category_id' => '2'
        )
    ),
    (int) 1 => array(
        'id' => '3',
        'CategoriesPlace' => array(
            'id' => '674',
            'place_id' => '8',
            'category_id' => '3'
        )
    ),
    (int) 2 => array(
        'id' => '5',
        'CategoriesPlace' => array(
            'id' => '675',
            'place_id' => '8',
            'category_id' => '5'
        )
    )
)

我不希望显示此 CategoriesPlace 数组。知道怎么样?

1 个答案:

答案 0 :(得分:1)

两种cakephp解决方案:

$this->Place->recursive=-1;
发现之前

或者:

$this->Place->contain();

contain docs

编辑: 为了更好地控制输出:

containable docs

把:

public $actsAs = array('Containable');

在模型中。

然后:

$this->Place->find('all', array(
    'contain' => array(
        'Place',
        'Category' => array(
            'fields'=>array('id')
        )
    )
  )
);

它可能不起作用,因为cakephp添加了执行查询所需的所有外键。