【发布时间】:2013-11-22 00:40:40
【问题描述】:
在 cake PHP 中,我使用可包含行为来连接一堆表,并用一堆数据创建一个漂亮的大数组,如下所示:
$this->paginate = array(
'contain' => array(
'House' => array(
'Room' => array(
'Chair' => array(),
),
),
'Apartment' => array(),
),
"limit" => $limit,
'conditions' => array('Dwelling.id' => 1),
);
但是,这当然会返回每个表的每一列,而我真正想要的只是椅子列,所以我这样做了,为很多模型添加了一个“字段”数组:
$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 查询时,它似乎正在为所有这些正确查询数据库;它只是没有将它全部打包到结果数组中......
【问题讨论】:
-
在使用 Containable 行为时遇到了另一个没有答案的问题。我可能只想说把它搞砸,然后使用我定制的 SQL 查询生成器。 Cakephp 因在框外做任何事情而受到打击。
标签: php cakephp cakephp-2.3