Ha. I was JUST going to ask about that!

On Tuesday, October 9, 2012 9:31:29 AM UTC-4, Greg wrote:
>
> solved it.
>
> RTFM basically :( 
>
>
> If you need to reference a model within your plugin, you need to include 
> the plugin name with the model name, separated with a dot.
>
> which seems to go for if you are referencing a model within the same 
> plugin...even though the associations don't bake like that.
>
> working now..
>
>
> On Tue, Oct 9, 2012 at 11:19 PM, Greg Skerman <[email protected]<javascript:>
> > wrote:
>
>> oddly, if i pr($this->Operation->User) I get the structure for the User 
>> model, but if I dump out $this->Operation->OperationParticipant I get the 
>> structure for AppModel.. its almost as though OperationParticipant is not 
>> initializing?
>>
>>
>>
>> On Tue, Oct 9, 2012 at 10:44 PM, Greg Skerman <[email protected]<javascript:>
>> > wrote:
>>
>>> Dave
>>>
>>> heres the exact OperationParticipant model:
>>>
>>> class OperationParticipant extends OperationAppModel {
>>> /**
>>>  * Validation rules
>>>
>>>  *
>>>  * @var array
>>>  */
>>>     public $validate = array(
>>>         'user_id' => array(
>>>             'numeric' => array(
>>>                 'rule' => array('numeric'),
>>>                 //'message' => 'Your custom message here',
>>>                 //'allowEmpty' => false,
>>>                 //'required' => false,
>>>                 //'last' => false, // Stop validation after this rule
>>>                 //'on' => 'create', // Limit validation to 'create' or 
>>> 'update' operations
>>>             ),
>>>         ),
>>>         'operation_id' => array(
>>>             'numeric' => array(
>>>                 'rule' => array('numeric'),
>>>                 //'message' => 'Your custom message here',
>>>                 //'allowEmpty' => false,
>>>                 //'required' => false,
>>>                 //'last' => false, // Stop validation after this rule
>>>                 //'on' => 'create', // Limit validation to 'create' or 
>>> 'update' operations
>>>             ),
>>>         ),
>>>     );
>>>
>>>     //The Associations below have been created with all possible keys, 
>>> those that are not needed can be removed
>>>
>>>
>>> /**
>>>  * 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
>>>         )
>>>     );
>>> }
>>>
>>> and the Operation controller method doing the work:
>>>
>>> /**
>>>  * view method
>>>  * 
>>>  * View an operation
>>>  * 
>>>  * @param string $id
>>>  * @return void
>>>  */
>>>         public function view($id = null) {
>>>             $this->Operation->id = $id;
>>>             if (!$this->Operation->exists()) {
>>>                throw new NotFoundException(__('Invalid operation'));
>>>             }
>>>             $this->Operation->Behaviors->attach('Containable');
>>>             $this->set('operation', $this->Operation->find('first', 
>>> array(
>>>
>>>                 'contain' => array(
>>>                     'User',
>>>                     'OperationType',
>>>                     'OperationParticipant' => array('User')
>>>                    ),
>>>                 'conditions' => array(
>>>                     'Operation.id' => $id
>>>                     )
>>>                 )
>>>             ));
>>>         }
>>>
>>>
>>> and still getting the error described...using cake 2.1.5 if that helps?
>>>
>>>
>>>
>>> On Tue, Oct 9, 2012 at 9:14 AM, Greg Skerman <[email protected]<javascript:>
>>> > wrote:
>>>
>>>> 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]<javascript:>
>>>> > 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]<javascript:>
>>>>> .
>>>>> To unsubscribe from this group, send email to 
>>>>> [email protected] <javascript:>.
>>>>> 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