假设我有一个典型的发布 belongsTo
用户 belongsTo
群组方案
假设我想使用某些条件过滤帖子,我想知道涉及多少个不同的组(我只需要group_id
的列表)
我做了类似
的事情$this->Post->find(
'all'
array(
'fields' => array('DISTINCT User.group_id'),
'conditions' => array ( ... ), // here go my search criteria about posts
'contain' => array('User')
)
);
我期待像
这样的查询SELECT DISTINCT User.group_id FROM posts AS Post LEFT JOIN users AS USER ON ...
但是当使用contains
cake时会引入一个额外的字段,以便查询变为
SELECT DISTINCT User.group_id, User.id FROM posts AS Post LEFT JOIN users AS USER ON ...
我没有得到预期的结果。
我使用手动连接解决了,但有没有办法强制蛋糕不要为包含的表添加id
字段?
答案 0 :(得分:1)
您应该可以通过关闭可包含行为的$autoFields
来完成您想要的任务。
$this->Post->Behaviors->load('Containable', array('autoFields' => false));
有关详细信息,请参阅该书:http://book.cakephp.org/2.0/en/core-libraries/behaviors/containable.html#containablebehavior-options