Re: Trouble with model associations and query.

2012-12-10 Thread MDay
I seem to have resolved this, but I don't think it's the most efficient 
query:

public function getStudents(){

$userId = $this-Auth-user('id');

 $endusers = $this-RoleUser-findAllByuser_id($userId, 
array('RoleUser.enduserid','RoleUser.user_id')); //Get the enduserid's for 
all the roles I have been assigned

foreach ($endusers as $enduser){ 

 $theusers[] = $this-User-findById($enduser['RoleUser']['enduserid']); 
//store each user to an array.

}

debug($theusers);

 Any ideas how I can get the same result by just querying the Users table 
and associated roles/userroles ? }

On Sunday, December 9, 2012 2:30:38 PM UTC-5, MDay wrote:

 I am having trouble returning a query.  I have the following setup

 Users - users class of all users in the system.
 Roles - roles class with a set of available roles.  E.g. teacher, student, 
 tutor
 RoleUsers - a mapping table between users and roles as a single user can 
 have multiple roles.


 My Users class has this

 public $hasAndBelongsToMany = array(

 'Role' =

 array(

 'className'  = 'Role',

 'joinTable'  = 'role_users',  //was 
 roles_users

 'foreignKey' = 'user_id',

 'associationForeignKey'  = 'role_id',

 'unique' = true)

 );


 My RolesUser class has this

 public $belongsTo = array(

 'User' =

 array(

 'className'  = 'User',

 'joinTable'  = 'users',  

 'foreignKey' = 'user_id',

 'unique' = true),

  'Role' =

 array(

 'className'  = 'Role',

 'joinTable'  = 'roles',  

 'foreignKey' = 'role_id',

 'unique' = true)


 I am now trying to query the user table to determine the students 
 belonging to the logged in user (a teacher or tutor)


 public function getStudents(){

 $userId = $this-Auth-user('id'); 

 $conditions = array('conditions' = array (array('Role.id =' = 75),  //75 
 is the role for all students

 array ('RoleUser.id = ' = $userId)));  //this is the current logged in 
 user

 $result = $this-User-find('all',$conditions);

 debug($result);


 In the top of my UsersController, I have:

 public $uses = array('Role', 'RoleUser');


 When I run the function getStudents above, I am getting *Error: *Call to 
 a member function find() on a non-object


 );



-- 
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 cake-php@googlegroups.com.
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php?hl=en.




Trouble with model associations and query.

2012-12-09 Thread Md
I am having trouble returning a query.  I have the following setup

Users - users class of all users in the system.
Roles - roles class with a set of available roles.  E.g. teacher, student, 
tutor
RoleUsers - a mapping table between users and roles as a single user can 
have multiple roles.


My Users class has this

public $hasAndBelongsToMany = array(

'Role' =

array(

'className'  = 'Role',

'joinTable'  = 'role_users',  //was roles_users

'foreignKey' = 'user_id',

'associationForeignKey'  = 'role_id',

'unique' = true)

);


My RolesUser class has this

public $belongsTo = array(

'User' =

array(

'className'  = 'User',

'joinTable'  = 'users',  

'foreignKey' = 'user_id',

'unique' = true),

 'Role' =

array(

'className'  = 'Role',

'joinTable'  = 'roles',  

'foreignKey' = 'role_id',

'unique' = true)


I am now trying to query the user table to determine the students belonging 
to the logged in user (a teacher or tutor)


public function getStudents(){

$userId = $this-Auth-user('id'); 

$conditions = array('conditions' = array (array('Role.id =' = 75),  //75 
is the role for all students

array ('RoleUser.id = ' = $userId)));  //this is the current logged in user

$result = $this-User-find('all',$conditions);

debug($result);


In the top of my UsersController, I have:

public $uses = array('Role', 'RoleUser');


When I run the function getStudents above, I am getting *Error: *Call to a 
member function find() on a non-object


);

-- 
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 cake-php@googlegroups.com.
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php?hl=en.




Re: Trouble with model associations and query.

2012-12-09 Thread lowpass
On Sun, Dec 9, 2012 at 2:30 PM, Md mdaytra...@gmail.com wrote:

 array ('RoleUser.id = ' = $userId)));  //this is the current logged in user

RolesUser

-- 
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 cake-php@googlegroups.com.
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php?hl=en.