The only thing I can think of is that User doesn't have an association
(baking the app would make it do so).

Because Operation is a plugin which may or may not be there, User doesn't
have the association. But given i don't need to query it from the user
side, I don't need the association there, do i?


On Mon, Oct 8, 2012 at 10:52 PM, Dave M. <[email protected]> wrote:

> I suspect there is something else going on specific to your setup.
>
> I baked up a quick test app and had no problems at all. I didn't alias the
> association at all.
>
> My model names and associations were the same as yours.
>
> $this->Operation->find('all', array(
> 'contain' => array(
> 'User',
> 'OperationType',
> 'OperationParticipant' => array('User')
> )
> );
>
> Yielded this result:
>
> array(
> (int) 0 => array(
> 'Operation' => array(
> 'id' => '1',
> 'user_id' => '1',
> 'descr' => 'fooo',
> 'operation_type_id' => '1'
> ),
> 'User' => array(
> 'id' => '1',
> 'username' => 'aaa'
> ),
> 'OperationType' => array(
> 'id' => '1',
> 'descr' => 'Foo'
> ),
> 'OperationParticipant' => array(
> (int) 0 => array(
> 'id' => '1',
> 'user_id' => '1',
> 'operation_id' => '1',
> 'User' => array(
> 'id' => '1',
> 'username' => 'aaa'
> )
> ),
> (int) 1 => array(
> 'id' => '2',
> 'user_id' => '2',
> 'operation_id' => '1',
> 'User' => array(
> 'id' => '2',
> 'username' => 'bbb'
> )
> )
> )
> )
> )
>
> I'm still thinking about this.
>
> On Monday, October 8, 2012 7:45:39 AM UTC-4, José Lorenzo wrote:
>>
>> You need the alias as cricket said and in your find you need 'contain' =>
>> array('OpUser', 'User')
>>
>> El lunes, 8 de octubre de 2012 01:50:05 UTC+2, Greg escribió:
>>>
>>> Sure have. Its containable that i'm suspecting is the problem.. Its
>>> almost as though it binds the model on the first level of contain, but then
>>> fails to rebind it after. If i turn containable off I can query the model
>>> with ->find();, but with containable on ->find() throws a non-existant
>>> method/non-existant object error.
>>>
>>>
>>> On Mon, Oct 8, 2012 at 2:17 AM, Dave M. <[email protected]> wrote:
>>>
>>>> another wild guess: have you attached the Containable behavior?
>>>>
>>>> In your AppModel:
>>>> public $actsAs = array('Containable');
>>>>
>>>> -dave
>>>>
>>>> On Saturday, October 6, 2012 2:58:54 AM UTC-4, Greg wrote:
>>>>
>>>>> Sorry to keep bumping, but this is really doing my head in...
>>>>>
>>>>> The only "solution" i have is to load the data without the contained
>>>>> users, and then call the users with ajax after the page has loaded - which
>>>>> seems a bit daft to me.
>>>>>
>>>>> On Tue, Oct 2, 2012 at 10:37 PM, Greg Skerman <[email protected]>wrote:
>>>>>
>>>>>>  So even after aliasing everything, the User model appears to become
>>>>>> unbound from the OperationParticipant model and doesn't get rebound by
>>>>>> containable...
>>>>>>
>>>>>> anybody got any clue?
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Tue, Oct 2, 2012 at 7:54 AM, Greg Skerman <[email protected]>wrote:
>>>>>>
>>>>>>> Yeah no dice :( had tried something similar to that before.
>>>>>>>
>>>>>>> * Model "OperationParticipant" is not associated with model "OPUser"
>>>>>>> *
>>>>>>>
>>>>>>>
>>>>>>> On Tue, Oct 2, 2012 at 4:05 AM, lowpass <[email protected]> wrote:
>>>>>>>
>>>>>>>> Just a wild guess: in the OperationParticipant model, try changing
>>>>>>>> the
>>>>>>>> alias for User. Something like:
>>>>>>>>
>>>>>>>>     public $belongsTo = array(
>>>>>>>>         'OPUser' => array(
>>>>>>>>             'className' => 'User',
>>>>>>>> ...
>>>>>>>>
>>>>>>>> And then change the contain block to have  'OperationParticipant' =>
>>>>>>>> array('OPUser')
>>>>>>>>
>>>>>>>> On Mon, Oct 1, 2012 at 3:05 AM, Greg Skerman <[email protected]>
>>>>>>>> wrote:
>>>>>>>> > I've been wracking my brain over this for a few hours and its
>>>>>>>> doing my head
>>>>>>>> > in.
>>>>>>>> >
>>>>>>>> > Consider the following models and associations:
>>>>>>>> >
>>>>>>>> > Operation belongsTo User, OperationType and hasMany
>>>>>>>> OperationParticipant
>>>>>>>> > OperationType hasMany Operation
>>>>>>>> > OperationParticipant belongsTo User, Operation
>>>>>>>> >
>>>>>>>> > if I dump out the contents of OperationParticipant in the
>>>>>>>> > OperationParticipants controller, I get exactly what I would
>>>>>>>> expect - a list
>>>>>>>> > of OperationParticipants and the associated list of Users.
>>>>>>>> Obviously User is
>>>>>>>> > correctly associated with OperationParticipant
>>>>>>>> >
>>>>>>>> > The problem comes when I want to call up an Operation and list
>>>>>>>> the users who
>>>>>>>> > are participating.
>>>>>>>> >
>>>>>>>> > $this->Operation->find('all', array(
>>>>>>>> >    'contain' => array(
>>>>>>>> >       'OperationType', 'User', 'OperationParticipant' =>
>>>>>>>> array('User')
>>>>>>>> >       )
>>>>>>>> >    )
>>>>>>>> > );
>>>>>>>> >
>>>>>>>> > I get
>>>>>>>> >
>>>>>>>> > Model "OperationParticipant" is not associated with model "User"
>>>>>>>> >
>>>>>>>> > If, from within the context of the Operations controller I do
>>>>>>>> > pr($this->Operation->**Operation**Participants->find('**all')));
>>>>>>>> I get no
>>>>>>>> > associated data back for OperationParticipants.
>>>>>>>> >
>>>>>>>> > Adding OperationParticipants to the $uses property yields the
>>>>>>>> same result,
>>>>>>>> > no associated data.
>>>>>>>> >
>>>>>>>> > I've done deep contains before, and I cannot for the life of me
>>>>>>>> understand
>>>>>>>> > why this is acting up.
>>>>>>>> >
>>>>>>>> >
>>>>>>>> > Here are the associations:
>>>>>>>> >
>>>>>>>> >
>>>>>>>> > OperationParticipant.php
>>>>>>>> >
>>>>>>>> > /**
>>>>>>>> >  * belongsTo associations
>>>>>>>> >  *
>>>>>>>> >  * @var array
>>>>>>>> >  */
>>>>>>>> >     public $belongsTo = array(
>>>>>>>> >         'User' => array(
>>>>>>>> >             'className' => 'User',
>>>>>>>> >             'foreignKey' => 'user_id',
>>>>>>>> >             'conditions' => '',
>>>>>>>> >             'fields' => '',
>>>>>>>> >             'order' => ''
>>>>>>>> >         ),
>>>>>>>> >         'Operation' => array(
>>>>>>>> >             'className' => 'Operation',
>>>>>>>> >             'foreignKey' => 'operation_id',
>>>>>>>> >             'conditions' => '',
>>>>>>>> >             'fields' => '',
>>>>>>>> >             'order' => '',
>>>>>>>> >                         'counterCache' => true
>>>>>>>> >         )
>>>>>>>> >     );
>>>>>>>> >
>>>>>>>> >
>>>>>>>> > Operation.php
>>>>>>>> >
>>>>>>>> > /**
>>>>>>>> >  * belongsTo associations
>>>>>>>> >  *
>>>>>>>> >  * @var array
>>>>>>>> >  */
>>>>>>>> >     public $belongsTo = array(
>>>>>>>> >         'OperationType' => array(
>>>>>>>> >             'className' => 'OperationType',
>>>>>>>> >             'foreignKey' => 'operation_type_id',
>>>>>>>> >             'conditions' => '',
>>>>>>>> >             'fields' => '',
>>>>>>>> >             'order' => ''
>>>>>>>> >         ),
>>>>>>>> >         'User' => array(
>>>>>>>> >             'className' => 'User',
>>>>>>>> >             'foreignKey' => 'user_id',
>>>>>>>> >             'conditions' => '',
>>>>>>>> >             'fields' => '',
>>>>>>>> >             'order' => ''
>>>>>>>> >         )
>>>>>>>> >     );
>>>>>>>> >
>>>>>>>> > /**
>>>>>>>> >  * hasMany associations
>>>>>>>> >  *
>>>>>>>> >  * @var array
>>>>>>>> >  */
>>>>>>>> >     public $hasMany = array(
>>>>>>>> >         'OperationParticipant' => array(
>>>>>>>> >             'className' => 'OperationParticipant',
>>>>>>>> >             'foreignKey' => 'operation_id',
>>>>>>>> >             'dependent' => false,
>>>>>>>> >             'conditions' => '',
>>>>>>>> >             'fields' => '',
>>>>>>>> >             'order' => '',
>>>>>>>> >             'limit' => '',
>>>>>>>> >             'offset' => '',
>>>>>>>> >             'exclusive' => '',
>>>>>>>> >             'finderQuery' => '',
>>>>>>>> >             'counterQuery' => ''
>>>>>>>> >         )
>>>>>>>> >     );
>>>>>>>> >
>>>>>>>> >
>>>>>>>> > OperationType.php
>>>>>>>> >
>>>>>>>> > /**
>>>>>>>> >  * hasMany associations
>>>>>>>> >  *
>>>>>>>> >  * @var array
>>>>>>>> >  */
>>>>>>>> >     public $hasMany = array(
>>>>>>>> >         'Operation' => array(
>>>>>>>> >             'className' => 'Operation',
>>>>>>>> >             'foreignKey' => 'operation_type_id',
>>>>>>>> >             'dependent' => false,
>>>>>>>> >             'conditions' => '',
>>>>>>>> >             'fields' => '',
>>>>>>>> >             'order' => '',
>>>>>>>> >             'limit' => '',
>>>>>>>> >             'offset' => '',
>>>>>>>> >             'exclusive' => '',
>>>>>>>> >             'finderQuery' => '',
>>>>>>>> >             'counterQuery' => ''
>>>>>>>> >         )
>>>>>>>> >     );
>>>>>>>> >
>>>>>>>> >
>>>>>>>> >
>>>>>>>> > The users model does not have the association included,
>>>>>>>> Operations is a
>>>>>>>> > plugin which may not always be there so I've not included the
>>>>>>>> hasMany (and
>>>>>>>> > there is no reason to read the data back the other way, i.e. I
>>>>>>>> have no
>>>>>>>> > requirement to get a list of Users and find their associated
>>>>>>>> Operations -
>>>>>>>> > only Operations, and find their associated users.
>>>>>>>> >
>>>>>>>> > Can anyone shed any light?
>>>>>>>> >
>>>>>>>> > --
>>>>>>>> > Like Us on FacekBook 
>>>>>>>> > https://www.facebook.com/**CakeP**HP<https://www.facebook.com/CakePHP>
>>>>>>>> > Find us on Twitter http://twitter.com/CakePHP
>>>>>>>> >
>>>>>>>> > ---
>>>>>>>> > 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
>>>>>>>> > cake-php+u...@**googlegroups.com**.
>>>>>>>>
>>>>>>>> > Visit this group at http://groups.google.com/**group**
>>>>>>>> /cake-php?hl=en <http://groups.google.com/group/cake-php?hl=en>.
>>>>>>>> >
>>>>>>>> >
>>>>>>>>
>>>>>>>> --
>>>>>>>> Like Us on FacekBook 
>>>>>>>> https://www.facebook.com/**CakeP**HP<https://www.facebook.com/CakePHP>
>>>>>>>> Find us on Twitter http://twitter.com/CakePHP
>>>>>>>>
>>>>>>>> ---
>>>>>>>> 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 cake-php+u...@**
>>>>>>>> googlegroups.com**.
>>>>>>>>
>>>>>>>> Visit this group at http://groups.google.com/**group**
>>>>>>>> /cake-php?hl=en <http://groups.google.com/group/cake-php?hl=en>.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>  --
>>>> Like Us on FaceBook 
>>>> https://www.facebook.com/**CakePHP<https://www.facebook.com/CakePHP>
>>>>
>>>> Find us on Twitter http://twitter.com/CakePHP
>>>>
>>>> ---
>>>> 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]**.
>>>> Visit this group at 
>>>> http://groups.google.com/**group/cake-php?hl=en<http://groups.google.com/group/cake-php?hl=en>
>>>> .
>>>>
>>>>
>>>>
>>>
>>>  --
> Like Us on FaceBook https://www.facebook.com/CakePHP
> Find us on Twitter http://twitter.com/CakePHP
>
> ---
> 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].
> Visit this group at http://groups.google.com/group/cake-php?hl=en.
>
>
>

-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

--- 
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].
Visit this group at http://groups.google.com/group/cake-php?hl=en.


Reply via email to