Saturday, June 1, 2013

Re: Contain with an associated plugin

Do not prefix the model alias with plugin name in your find() call. All that is for is creating the alias in the query, and then setting up the data array. Including the plugin name in the association as you have it is correct. The bare 'User' alias can then be used in your finds.

I presume the code you posted is in GroupsController. Do you have any routes pointing to UsersController? Or did you modify any of the plugin files?


On Fri, May 31, 2013 at 11:33 PM, Larry Lutz <lutzle@swbell.net> wrote:
I'm having difficulty getting containable to work when the contained model is in a plugin. Specifically, I have a Group model that is associated with a Users (CakeDC) plugin. Normally, you just prefix the plugin model name with the plugin name such as Users.User, but it seems that the Containable behavior can't deal with that. Specifically, I've tried

$this->set('group', $this->Group->find('first',
    array(
       'conditions' => array('Group.slug' => $slug),
       'fields'     => array(
                             'Group.id',
                             'Group.name',
                             'Group.slug',
                             'Group.description',
                         ),
                         'contain'    => array(
                             'Users.User' => array(
                                 'conditions' => array('Users.User.group_id' => 'Group.id'),
                                 'fields'     => array(
                                     'Users.User.id',
                                     'Users.User.username',
                                     'Users.User.slug',
                                     'Users.User.email',
                                     'Users.User.active',
                                     'Users.User.last_login',
                                 ),
                                 'order'      => array('Users.User.username' => 'asc'),
                             ),
                         ),
                    )
                ));


Unfortunately, that results in this error:

Error: UsersController could not be found.

I've also tried it without the "Users." prefix, but that yields the same error. I have this in my Group model:

public $hasMany = array(
            'User' => array(
                'className'    => 'Users.User',
                'foreignKey'   => 'group_id',
                'dependent'    => FALSE,
            )
        );


Can anyone tell me how to handle plugin models within a contain.

--
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 unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscribe@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

--
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 unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscribe@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

No comments: