Friday, May 31, 2013

Contain with an associated plugin

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.
 
 

No comments: