CakePHP可包含字段don';不起作用


CakePHP containable fields don't work

在cake PHP中,我使用可容纳的行为来连接一堆表,并用一堆数据组成一个漂亮的大数组,如下所示:

$this->paginate = array(
    'contain' => array(
        'House' => array(
            'Room' => array(
                'Chair' => array(),
            ),
        ),
        'Apartment' => array(),
    ), 
    "limit" => $limit, 
    'conditions' => array('Dwelling.id' => 1), 
);

然而,这当然会返回每个表的每一列,而我真正想要的只是Chair列,所以我这样做了,在很多模型中添加了一个"字段"数组:

 $this->paginate = array(
    'contain' => array(
        'House' => array(
            'fields' => array("id"),
            'Room' => array(
                'fields' => array("id"),
                'Chair' => array(),
            ),
        ),
        'Apartment' => array(),
    ), 
    "limit" => $limit, 
    'conditions' => array('Dwelling.id' => 1), 
    'fields' => array("id"),
);

然后CakePHP说:"见鬼去吧,除了Dwelling模型,我根本不会返回任何东西。"它为什么要这样做?在查看实际的MYSQL查询时,它似乎正在正确地查询数据库中的所有这些;它只是没有将其全部打包到生成的数组中。。。

如果你只想要"椅子",为什么要加"公寓"?无论如何,试试这个

 $this->paginate = array(
'contain' => array(
    'House' => array(
        'fields' => array("id"),
        'Room' => array(
            'Chair' => array(),
        ),
    ),
    'Apartment' => array(),
), 
"limit" => $limit, 
'conditions' => array('Dwelling.id' => 1), 
'fields' => array("House.id", "Chair.id", "Chair.whatever"),

);