PHP Error: "Object of class Group could not be converted to int" WHEN i try to use CHtml

people, i have been tryed to use CHtml to generate HTML componentes in a scenario that I have a MANY_TO_MANY relation.

it works


    	 foreach($model->groups as $index => $oGroup)


    	 	print( $oGroup->name ) . "<br>";



it doesn’t work


$data = CHtml::listData($model->groups, 'id','name');


echo CHtml::activeListBox($model,'groups',$data );


and I get this error

PHP Error


Object of class Group could not be converted to int

bellow is User’s relations method

	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(

			'posts'  => array ( self::HAS_MANY, 'Post', 'authorId'),

			'groups' => array ( self::MANY_MANY, 'Group', 'UserGroup(userId, groupId)',


				'joinType'=>'INNER JOIN'),		



im not being able to show in an activeCheckBoxList all groups of a User. that’s the question.

Any ideas?

does anybody have any solution, plz?

It doesn’t work because in activeListBox(), the second parameter should be an attribute name, not a relation name. In your case, you may need to declare a new property to store the selections.

hi qiang.

im sorry, I could let it works but i still not being able to get the result what i expect.

I did what you said, that is i’ve put the following fragment inside User model


private $groups;



	 * @return string the associated database table name


	public function getGroups()


		return $this->groups;


this is the action’s code

	public function actionAdmin()



		$criteria=new CDbCriteria;

		$pages=new CPagination(User::model()->count($criteria));



		$sort=new CSort('User');









this is a view’s fragment code

<table class="dataGrid">

<?php foreach($models as $n=>$model): ?>

   <tr class="<?php echo $n%2?'even':'odd';?>">    

    <th><?php echo $sort->link('Groups'); ?></th>




		$data = CHtml::listData($model->groups, 'id','name');

		//$arrGroups  = Group::model()->CategoryActive();


		$arrGroups = array('checked'=>CHtml::listData($model->groups,'id','name'));



		//$allowedCategories  = array('key1'=>'val1', ...);

		echo CHtml::activeCheckBoxList(Group::model(),'id',$data );

		echo CHtml::activeCheckBoxList($model,Group::model()->findAll(),$data );




<?php endforeach; ?>


both of the echo above work, but I didn’t understand yet how to apply the simple requirement.

I’d like to show all available Groups, and I wanna check just the groups that the current user belongs to.

hi Qiang,

i have fixed the problem, but to do that i had to take a look at the framework code in order to understand better how the component works.

but i was unable to make activeCheckBoxList working, so i chose CheckBoxList instead because it was enough to me.

that’s why i posted the following item in the forum.

i have the same issue here, can you please post a sample code on how to do this, will this property return an array with the associated keys??

how? could you post it?