我有两张桌子,
心情和投票,投票包含使用参数vote.moodId
添加的每种情绪的投票我正在努力获得已投票的特定类型的情绪。我正在使用cake 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?
答案 0 :(得分:1)
您的Mood.php模型应该
public $hasMany = array(
'Vote' => array(
'className' => 'Vote',
'foreignKey' => 'mood_id'
)
);
在您的投票表中,请确保添加列 mood_id (整数)。 这将投票与情绪联系在一起。 要根据相关模型进行过滤,您可以使用Containable。将以下内容添加到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
));