I really wish I could think of a better subject line.

I want to find all Members who are NOT registered for a particular
Event. I'm sure this should be dead simple but it's eluding me.

I created a "join" model, so I can select directly on the HABTM table.

class Event extends AppModel
{
        public $belongsTo = array('Country');
        public $hasMany = array('EventMember');
        public $hasAndBelongsTo = array('Member');
}

class Member extends AppModel
{
        public $hasAndBelongsTo = array('Event');
        public $hasMany = array('EventMember');
}

class EventMember extends AppModel
{
        public $name = 'EventMember';
        public $useTable = 'events_members';
        public $belongsTo = array('Event', 'Member');
}

My failed attempts in EventsController:

$this->set(
  'unregistered_members',
  $this->Event->EventMember->Member->find(
    'all',
    array(
      'fields' => array(
        'Member.id',
        'Member.first_name',
        'Member.last_name'
      ),
      'order' => array('Member.last_name' => 'ASC'),
      'contain' => array(
        'EventMember' => array(
          'conditions' => array(
            'EventMember.event_id' => $id,
            'Member.id != EventMember.member_id'
          )
        )
      )
    )
  )
);

$this->set(
  'unregistered_members',
  $this->Event->EventMember->Member->find(
    'all',
    array(
      'conditions' => array('Member.id != EventMember.member_id'),
      'fields' => array(
        'Member.id',
        'Member.first_name',
        'Member.last_name'
      ),
      'order' => array('Member.last_name' => 'ASC'),
      'contain' => array(
        'EventMember' => array(
          'conditions' => array(
            'EventMember.event_id' => $id

          )
        )
      )
    )
  )
);

Can anyone suggest something?

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to