thanks for your help

On Wed, Oct 10, 2012 at 2:58 AM, Dave M. <[email protected]> wrote:

> 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]> 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]> 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]> 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]> 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/**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
>>>>>>>>> [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<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
> 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