Ok, that works! Very nice!

But in this case, some of my "find() or save() calls" become more
complex: $this->Model1->Model2->Model3->save();
And the resultsets of my find are now in the DESC order...

Avairet


On 12 déc, 15:54, avairet <[EMAIL PROTECTED]> wrote:
> Hi Mr Tufty,
>
> I didn't know that...
> It's very interesting.
> I will try it immediately because I've a doubt... that the associated
> models is known in my controller.
>
> I will reply after my test!
>
> Avairet
>
> On 12 déc, 13:56, MrTufty <[EMAIL PROTECTED]> wrote:
>
> > Yes, you can do it that way too. But if you set up the associations,
> > you don't NEED to change $uses to include Ugroup, as it will
> > automatically be included based on it's association with the User
> > model.
>
> > On Dec 12, 9:22 am, avairet <[EMAIL PROTECTED]> wrote:
>
> > > Hello,
>
> > > My cake knowledge is limited too (2 months), but I think you must
> > > specify your 2 models in your controller.
>
> > > Something like that in PHP5 context:
> > > <?
> > > class UsersController extends AppController
> > > {
> > >    public $uses = array('User','Ugroup');}
>
> > > ?>
>
> > > And maybe you should specify the association in your 2 models...
>
> > > Something like that:
> > > <?
> > > class User extends AppModel
> > > {
> > >    public $belongsTo = array('Ugroup');}
>
> > > ?>
>
> > > and for the associated model:
>
> > > <?
> > > class Ugroup extends AppModel
> > > {
> > >    public $hasMany = array('User');}
>
> > > ?>
>
> > > And finally, you must indicate to your models, the primary key you are
> > > using, because by default Cake search for an "id" key to make
> > > associations.
> > > <?
> > > class Ugroup extends AppModel
> > > {
> > >    public $primaryKey = 'ugroup_id';}
>
> > > ?>
>
> > > I hope this helps you...
>
> > > BR
>
> > > Avairet
>
> > > On 12 déc, 08:37, Sanfly <[EMAIL PROTECTED]> wrote:
>
> > > > No good im afraid, same error, except ugroup_id is now ugroupid
>
> > > > --------------------------------------------------------------------
> > > > Notice: Undefined property: UsersController::$Ugroup in C:\server\www
> > > > \cake\basic_site\plugins\users\controllers\users_controller.php on
> > > > line 34
>
> > > > Fatal error: Call to a member function findByUgroupid() on a non-
> > > > object in C:\server\www\cake\basic_site\plugins\users\controllers
> > > > \users_controller.php on line 34
> > > > --------------------------------------------------------------------
>
> > > > On Dec 12, 7:31 pm, chad <[EMAIL PROTECTED]> wrote:
>
> > > > > try findByUgroupId
>
> > > > > On Dec 11, 10:08 pm, Sanfly <[EMAIL PROTECTED]> wrote:
>
> > > > > > Hi
>
> > > > > > Ive only just started mucking around with CakePHP, and am having a
> > > > > > little trouble getting my head around the controllers and models
> > > > > > thingees.  YES - I have tried looking in the manual!!
>
> > > > > > Im trying to make a cake website that will more or less mirror some
> > > > > > normal-non-framework php sites I have done.
>
> > > > > > There is a table called users where all normal user data is stored
> > > > > > (see below for table structure).  The ugroup table contains a
> > > > > > ugroup_name and a number of "permissions" that dictate what the user
> > > > > > will be able to access on the site.  The ugroup_id field in users
> > > > > > indicates which ugroup the user belongs to.
>
> > > > > > When the person logs in, I first want it to check that the user_name
> > > > > > and user_pass are valid, then access the ugroups table to set the
> > > > > > ugroup data (permissions) as sessions, which can then be called 
> > > > > > when I
> > > > > > like throughout the rest of the site.
>
> > > > > > users_controller.php
> > > > > > -----------------------------------------
> > > > > > <?php
> > > > > > class UsersController extends AppController
> > > > > > {
>
> > > > > >     function login()
> > > > > >     {
> > > > > >         $this->set('error', false);
>
> > > > > >         if (!empty($this->data))
> > > > > >         {
> > > > > >             $someone = 
> > > > > > $this->User->findByUser_name($this->data['User']
> > > > > > ['user_name']);
>
> > > > > >             if(!empty($someone['User']['user_pass']) &&
> > > > > > $someone['User']['user_pass'] == md5($this->data['User']
> > > > > > ['user_pass']))
> > > > > >             {
> > > > > >                 $this->Session->write('User', $someone['User']);
>
> > > > > >                                 // Here is the code that is giving 
> > > > > > me problems
> > > > > >                                 $perms = 
> > > > > > $this->Ugroup->findByUgroup_id($someone['User']
> > > > > > ['user_group']);
>
> > > > > >                                 if($perms['Ugroup']['perm_admin'] 
> > > > > > == "1"){
> > > > > >                                         
> > > > > > $this->redirect('/pages/admin/');
> > > > > >                                 }
> > > > > >                                 else{
> > > > > >                                         $this->redirect('/');
> > > > > >                                 }
> > > > > >                                 // End Problem code
> > > > > >             }
> > > > > >             else
> > > > > >             {
> > > > > >                $this->set('error', true);
> > > > > >             }
> > > > > >         }
> > > > > >     }
>
> > > > > >     function logout()
> > > > > >     {
> > > > > >        $this->Session->delete('User');
>
> > > > > >         $this->redirect('/');
> > > > > >     }}
>
> > > > > > ?>
>
> > > > > > ----------------------------------------------------------
> > > > > > However, this code gives me an error:
>
> > > > > > ----------------------------------------------------------
> > > > > > Notice: Undefined property: UsersController::$Ugroup in 
> > > > > > C:\server\www
> > > > > > \cake\basic_site\plugins\users\controllers\users_controller.php on
> > > > > > line 34
>
> > > > > > Fatal error: Call to a member function findByUgroup_id() on a non-
> > > > > > object in C:\server\www\cake\basic_site\plugins\users\controllers
> > > > > > \users_controller.php on line 34
> > > > > > ----------------------------------------------------------
>
> > > > > > Can anyone point me in the right direction to solve this?  Sorry, 
> > > > > > but
> > > > > > my cake knowledge is very limited and Im having trouble finding 
> > > > > > "cake
> > > > > > for dummies" tutorials :s
>
> > > > > > Thanks for any help :)
>
> > > > > > ------------------------------------------------------
> > > > > > My tables:
>
> > > > > > CREATE TABLE `users` (
> > > > > >   `user_id` int(25) NOT NULL auto_increment,
> > > > > >   `user_name` varchar(70) NOT NULL default '',
> > > > > >   `user_pass` varchar(70) NOT NULL default '',
> > > > > >   `ugroup_id` int(25) NOT NULL,
> > > > > >   `user_email` varchar(50) NOT NULL default '',
> > > > > >   `user_active` enum('0','1') NOT NULL default '0',
> > > > > >   `user_logged` datetime NOT NULL default '0000-00-00 00:00:00',
> > > > > >   `user_display` varchar(30) NOT NULL default '',
> > > > > >   `user_joined` datetime NOT NULL default '0000-00-00 00:00:00',
> > > > > >   `user_access` enum('0','1') NOT NULL default '0',
> > > > > >   `user_bio` text NOT NULL,
> > > > > >   `user_web` varchar(200) NOT NULL,
> > > > > >   PRIMARY KEY  (`user_id`),
> > > > > >   KEY `ugroup_id` (`ugroup_id`)
> > > > > > ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
>
> > > > > > ALTER TABLE `users`
> > > > > >   ADD CONSTRAINT `users_ibfk_1` FOREIGN KEY (`ugroup_id`) REFERENCES
> > > > > > `ugroups` (`ugroup_id`);
>
> > > > > > CREATE TABLE `ugroups` (
> > > > > >   `ugroup_id` int(25) NOT NULL auto_increment,
> > > > > >   `ugroup_name` varchar(70) NOT NULL default '',
> > > > > >   `ugroup_rank` int(10) NOT NULL,
> > > > > >   `perm_admin` enum('0','1') NOT NULL default '0',
> > > > > >   `perm_configweb` enum('0','1') NOT NULL default '0',
> > > > > >   `perm_setperm` enum('0','1') NOT NULL default '0',
> > > > > >   `perm_adduser` enum('0','1') NOT NULL default '0',
> > > > > >   `perm_edituser` enum('0','1') NOT NULL default '0',
> > > > > >   `perm_viewuserhidden` enum('0','1') NOT NULL default '0',
> > > > > >   `perm_viewusers` enum('0','1') NOT NULL default '0',
> > > > > >   `perm_addgroup` enum('0','1') NOT NULL default '0',
> > > > > >   `perm_editgroup` enum('0','1') NOT NULL default '0',
> > > > > >   `perm_viewgroup` enum('0','1') NOT NULL default '0',
> > > > > >   PRIMARY KEY  (`ugroup_id`)
> > > > > > ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Cake 
PHP" group.
To post to this group, send email to cake-php@googlegroups.com
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