0

私は現在、CakePHP を使用してイベント用の REST API を構築しています。現在、イベント テーブルと、列 event_id と user_id を持つ event_attendees テーブルがあります。現在、ユーザーのリクエストに応じてすべてのイベントのリストを送り返すと、各イベントには詳細のフィールドがあり、ユーザー モデルとリンクするモデルを通じて、イベントに参加しているすべてのユーザーのリストが表示されます。ただし、各イベントには、現在のユーザーがイベントに参加しているかどうかを示す「attending」フィールドも必要です (これは、event_attendees テーブルを見て明らかにわかります)。そのため、イベント モデルで findAll() を呼び出すときはいつでも、各イベントに「attending」フィールドも含める必要があります。

どんな助けでも大歓迎です。

4

1 に答える 1

0

グローバルから離れたい場合は、現在のユーザーのイベントのリストとイベントのリストを取得するのが最善の策です。2つのループがあり、ユーザーが参加しているイベントのリストが強調表示されます。

例:

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

これは、ユーザーとイベントの間に多対多の関係があることを前提としています。つまり、1人のユーザーが多くのイベントに参加でき、イベントには多くのユーザーが参加できます。

于 2013-01-16T21:07:51.610 に答える