If the user model is in the plugin it should not a problem.. Maybe the
problem is how you call the find and from where ?

>The problem is when I try to find the user.  In my model association I
>have to have:

I guess this is when you try to find user from the application and not
the plugin ? Maybe the problem comes from the "calling" rather than
the callee ?
hth

On May 23, 7:34 pm, "Christopher E. Franklin, Sr."
<[EMAIL PROTECTED]> wrote:
> Hi great coders,
>
>      I am having a problem trying to get my model associations in a
> plugin to come through.
>
>     I have a plugin called users and I have a users_controller and a
> user_profiles_controller and thier associated models.  Between these
> two models, I have them associated as, user has one user profile and
> the user profile belongs to a user.
>
>      In my controller, since I want to save the profile information at
> the same time as I create the user, I have to declare the $uses
> array.  This is fine but, since I am in a plugin, I have to declare
> these like so:
>
> public $uses = array('users.User', 'users.UserProfile');  This works
> perfectly and I can create a user and a user profile and it saves just
> fine.
>
> The problem is when I try to find the user.  In my model association I
> have to have:
> $belongsTo = 'users.User'; and $hasOne = 'users.UserProfile'; or else
> it will say that it cannot find the correct table.
>
> Now, with this set, I get a giant SQL statement with an error:
>
> Query: SELECT `User`.`id`, `User`.`email`, `User`.`password`,
> `User`.`group_id`, `User`.`created`, `User`.`updated`,
> `User`.`modified`, `users`.`UserProfile`.`id`,
> `users`.`UserProfile`.`first_name`, `users`.`UserProfile`.`last_name`,
> `users`.`UserProfile`.`address`, `users`.`UserProfile`.`city`,
> `users`.`UserProfile`.`state`, `users`.`UserProfile`.`zip`,
> `users`.`UserProfile`.`province`, `users`.`UserProfile`.`country`,
> `users`.`UserProfile`.`home_telephone`,
> `users`.`UserProfile`.`cell_phone`, `users`.`UserProfile`.`fax`,
> `users`.`UserProfile`.`user_id` FROM `users` AS `User` LEFT JOIN
> `user_profiles` AS `users`.`UserProfile` ON
> (`users`.`UserProfile`.user_id = `User`.`id`) WHERE 1 = 1
>
> 1064: You have an error in your SQL syntax; check the manual that
> corresponds to your MySQL server version for the right syntax to use
> near '.`UserProfile` ON (`users`.`UserProfile`.user_id = `User`.`id`)
> WHERE 1 = 1' at line 1
>
> To me, it looks like the error is in the statement where it says
> users.UserProfile ON users.UserProfile.user_id
>
> So, I am at a loss, can't find anything here on the group, or the
> tickets and IRC isn't very helpful today.
>
> So, here is the code I have, maybe a second set of eyes will see
> something I dont.
>
> Remember, this is in a plugin.
>
> USERS_CONTROLLER - /app/plugins/users/controllers/users_controller.php
> -----------------------------------
> class UsersController extends UsersAppController {
>         public $components = array('Auth');
>         public $uses = array('users.User', 'users.UserProfile');
>
>         public function beforeFilter() {
>                 parent::beforeFilter();
>                 $this->Auth->loginAction = '/login';
>                 $this->Auth->logoutAction = '/logout';
>                 $this->Auth->allowedActions = array('index', 'create', 'read',
> 'update', 'delete');
>         }
>
>         public function index() {
>
>         }
>
>         public function create() {
>                 if(!empty($this->data)) {
>                         $this->data['User']['password'] = 
> $this->Auth->password($this->data['User']['password']);
>
>                         $this->User->create($this->data);
>                         $this->User->save($this->data);
>                         $user_id = $this->User->id;
>                         $this->data['UserProfile']['id'] = $user_id;
>                         $this->data['UserProfile']['user_id'] = $user_id;
>                         $this->UserProfile->create($this->data);
>                         $this->UserProfile->save($this->data);
>                 }
>                 $this->set('fields', $this->User->getColumnTypes());
>         }
>
>         public function read($id = 1) {
>                 $this->set('user', $this->User->findById($id));
>         }
>
>         public function update($id = 1) {
>                 $this->set('user', $this->User->findById($id));
>         }
>
>         public function delete() {
>
>         }
>
> }
>
> USER_MODEL - /app/plugins/users/models/user.php
> -----------------------
> class User extends UsersAppModel {
>         public $useDbConfig = 'users';
>         public $hasOne = 'users.UserProfile';
>
> }
>
> USER_PROFILE_MODEL - /app/plugins/users/models/user_profile.php
> --------------------------------------
> class UserProfile extends UsersAppModel {
>         public $useDbConfig = 'users';
>         public $belongsTo = 'users.User';
>
> }
--~--~---------~--~----~------------~-------~--~----~
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]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to