【发布时间】:2013-12-10 16:29:49
【问题描述】:
我是一个新手,我无法正确获取我的 cakephp 查询。
我有一个用户表,用户有很多轮播表。旋转表看起来像
星期一上午
星期一下午
星期二上午
等
例如,如果用户将在 monday_pm 进入,则该字段将为 1。否则为 0。
我想获取属于特定房间的所有用户,已取消注册 = 0 并且 - 这就是我遇到问题的地方 - 有一个(例如)tuesday_am = 1 的轮班
所以我有代码:
$options['conditions'] = array('User.room_id'=>$room_id, 'User.deregistered'=>0, 'User.request'=>0);
$options['joins'] = array(
array('table' => 'rotas',
'alias' => 'rota',
'type' => 'INNER',
'conditions' => array('rota.'.$todaysDay.'_'.$amPm => 1)
)
);
$usersToday = $this->User->find('all', $options);
如果我不尝试加入,那么我会得到一个不错的用户列表,就像我期望的那样。如果我尝试加入,我会得到 100 多个结果,这些结果大多是重复的!
如何才能在用户表和 Rotas 表中只获得一个具有所需条件的用户的记录,以及为什么像我这样进行联接会导致这么多结果?!?
谢谢
【问题讨论】:
-
您是否有不想在模型中定义 hasMany 关系的原因?如果你这样做,你可以为相关模型添加条件,蛋糕会为你加入。 book.cakephp.org/2.0/en/models/…
-
你的意思是像 $options['conditions'] = array('User.room_id'=>$room_id, 'User.deregistered'=>0, 'User.request'=>0, 'rota.'.$todaysDay.'_'.$amPm => 1);因为那没有用。根据book.cakephp.org/2.0/en/models/…hasmany 关系需要加入吗?
标签: php mysql sql cakephp cakephp-2.0