CGridView for subtable

Hello Community!

I am using CGridView for two tables (two pages) in based on controller and these functions:


public function actionMyconnections() {

		$model=new Connections('search');

		$model->unsetAttributes();  // clear any default values

		if(isset($_GET['Connections']))

			$model->attributes=$_GET['Connections'];


		$dataProvider = $model->search();

                $dataProvider->sort->defaultOrder = 'time ASC';

		

		//$dataProvider->pagination->pageSize = 17;

		

		if($dataProvider->criteria->condition != '')

			$dataProvider->criteria->condition .= ' AND ';

		$dataProvider->criteria->condition .= 't.user_id = :me_id OR t.chosen_id = :me_id';

		$dataProvider->criteria->params[':me_id'] =  Yii::app()->user->id;


		


		$this->render('myconnections',array(

			'dataProvider'=>$dataProvider,

			'model'=>$model,

		));

	}


	/**

	 * Manages all models.

	 */

	public function actionAllconnections() {

		$model=new Connections('search');

		$model->unsetAttributes();  // clear any default values

		if(isset($_GET['Connections']))

			$model->attributes=$_GET['Connections'];


		$dataProvider = $model->search();

		$dataProvider->sort->defaultOrder = 'time ASC';




		$this->render('allconnections,array(

			'dataProvider'=>$dataProvider,

			'model'=>$model,

		));

	}

Why I cannot to search and sorting on myconnections?? Searching and filtering do not work.

On allconnections.php page I have no problem with searching and sorting. Filtering are false on both tables.

Filtering I have defined in myconnections.php in this manner:


 array(

			'name'=>'user_con',

			'htmlOptions'=>array('width'=>'60', 'style'=>'text-align: center'),

			'type'=>'raw',

			'filter'=>array(0=>Yii::t('main', 'No'), 1=>Yii::t('main', 'Yes')),

			'value'=>'$data->user_con ? Yii::t(\'main\', \'Yes\') : Yii::t(\'main\', \'No\')',

			'visible'=>true,

		),

If I switch off ‘filter’ then I cannot search by No/Yes typying. 0/1 is working, but only on allconnections table.

Why subtable (myconnections) does not work?

I will add CGridViews:

for myconnections.php:


<?php $this->widget('zii.widgets.grid.CGridView', array(

	'id'=>'connections-grid',

	'dataProvider'=>$dataProvider,

	'filter'=>$model,

	'columns'=>array(...

for allconnections.php:


<?php $this->widget('zii.widgets.grid.CGridView', array(

	'id'=>'connections-grid',

	'dataProvider'=>$model->search(),

	'filter'=>$model,

	'columns'=>array(...

Do you meet with similar problem?

You can not share a place holder for multiple parameters.

And I think you should enclose the condition in parens.




	$dataProvider->criteria->condition .= '(t.user_id = :me_id OR t.chosen_id = :me_id2)';

	$dataProvider->criteria->params[':me_id'] =  Yii::app()->user->id;

	$dataProvider->criteria->params[':me_id2'] =  Yii::app()->user->id;



All is working! Thank you SO much for your answer and taking the time!!