I created 3 tables:
User
User-Group
Group
Where I can have a many-to-many relationship.
But how I create on the search method a find to it?
How can I get all users that have a specific group, like
select u.* from users as u, user-group as ug, group as g
where g.name = "group_1" and ug.group_id = g.id and ug.user_id = u.id ?
My code so far:
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'group'=>array(self::MANY_MANY, 'Group', 'tbl_profile(id_user, id_group)'),
'groupList' => array( self::HAS_MANY, 'Group', 'id_user' ),
}
$criteria->with=array('groupList' => array(
'condition' => 'id_user = 1',
));
I would start with the steps in this wiki article:
http://www.yiiframework.com/wiki/281/searching-and-sorting-by-related-model-in-cgridview/
Then, you’d need to add your join table groupID column to your gridviewand user search criterias. You will probably also need to add a with and together=true line to your search criteria.
Note that he has you add a new model attribute to your model to hold the search criteria. If you are using a drop down filter, you can specify your join table attributes’ name directly.