我有两张桌子,
情绪和投票,
选票包含使用参数vote.moodId添加的每个情绪的选票。
我正在努力让我所投票的特定类型的情绪增加。我使用的是蛋糕php
$conditions = array(
'Mood.userId'=>$userId,
'Mood.moodType'=>MOOD_IT
);
$moods = $this->Mood->find('all', array('conditions'=>$conditions,
'fields' => $this->mood_fields_it,
'order' => array('Mood.created DESC'),
'limit' => 20,
'offset' => $offset * 20
));
现在,这是使用我的userId将所有情绪添加到数据库中,而不是使用userId = myUserid来获得我投票没有的情绪吗?
发布于 2015-11-15 19:22:24
你的Mood.php模型应该
public $hasMany = array(
'Vote' => array(
'className' => 'Vote',
'foreignKey' => 'mood_id'
)
);
在选票表中,确保添加了一个列mood_id (整数)。这就把投票与情绪联系在一起。若要基于相关模型进行筛选,可以使用“可包含”。在AppModel.php中添加以下内容:
public $actsAs = array('Containable');
那么您的发现应该如下所示:
$conditions = array(
'Mood.userId !='=>$userId, // all Moods that not yours
'Mood.moodType'=>MOOD_IT
);
$moods = $this->Mood->find('all',
array(
'conditions'=>$conditions,
'contain' => array('Vote' => array(
'conditions' => array('Vote.userId' => $userId) // find your votes
)
),
'fields' => $this->mood_fields_it,
'order' => array('Mood.created DESC'),
'limit' => 20,
'offset' => $offset * 20
));
https://stackoverflow.com/questions/33722393
复制相似问题