Cripes! I've done this before! I specified a join:
$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'),
'joins' => array(
array(
'table' => 'events_members',
'alias' => 'EventMember',
'type' => 'right',
'conditions' => array(
'EventMember.event_id' => $id,
'Member.id != EventMember.member_id'
)
)
)
)
)
);
On Fri, Sep 18, 2009 at 3:18 PM, brian <[email protected]> wrote:
> 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
-~----------~----~----~----~------~----~------~--~---