2013-01-16 31 views
0

我目前正在为CakePHP事件构建一个REST api。现在我有一个event_id和user_id的事件表和一个event_attendees表。目前,当我发回所有事件的列表以响应用户请求时,每个事件都有字段以显示其详细信息,并且通过与用户模型链接的模型,列出所有参与该用户的用户。但是,我希望每个事件都具有“参加”字段,该字段指示CURRENT用户是否正在参加该事件(显然可以通过查看event_attendees表来了解这一点)。所以,无论何时在Event模型上调用findAll(),我都希望每个事件都具有“参加”字段。如果在另一个模型中存在记录,CakePHP返回true findAll

任何帮助将不胜感激。

+0

查看[这个问题]的答案(http://stackoverflow.com/questions/5079908/cakephp-find-method-with-join)。 – glomad

回答

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); 

这是假设你有你的用户,你的事件之间的许多一对多的关系。换句话说,一个用户可以参加许多活动,并且许多用户可以参加活动。

相关问题