我目前正在使用CakePHP为事件构建REST api。现在我有一个事件表和一个event_attendees表,其中包含event_id和user_id列。目前,当我发回所有事件的列表以响应用户请求时,每个事件都有其详细信息的字段,并且通过与用户模型的模型链接,列出了参与它的所有用户。但是,我希望每个事件都有“出席”字段,该字段指示CURRENT用户是否正在参加该事件(显然可以通过查看event_attendees表来计算出来)。因此,每当我在Event模型上调用findAll()时,我都希望每个事件都有“参加”字段。
非常感谢任何帮助。
答案 0 :(得分:0)
如果您想远离全局变量,最好的办法是检索当前用户的事件列表和事件列表。两个循环,您将获得用户正在突出显示的事件列表。
示例:
# In the user model
class User extends AppModel {
var $hasAndBelongsToMany = array('Event' => array('class' => 'Event'));
}
# In the controller
$allEvents = $this->Events->find('all');
$userAndEvents = $this->User->findForId($userId);
这假设您的用户与活动之间存在多对多关系。换句话说,一个用户可以参加许多活动,许多用户都可以参加活动。