Serach Function Not Retrun Anything

Hi All

I used GII/CURD to generate administration pages then I customized serach() function in model

, but when I write any word and click Enter not return any results ?

my serach function code in articles model





 public function editorserach()

	{


		// Warning: Please modify the following code to remove attributes that


                  $user_id=Yii::app()->user->id ;




		$criteria=new CDbCriteria;


		$criteria->compare('article_id',$this->article_id);

		$criteria->compare('title',$this->title,true);

		$criteria->compare('article',$this->article,true);

        $criteria->condition="        

         section_id in (select section_id from tbl_supervisor where user_id=:user_id  );

              ";

        

        $criteria->params=array(":user_id"=>Yii::app()->user->id);

       


		 return new CActiveDataProvider(get_class($this), array(

            'criteria'=>$criteria,

		));

	}

    



Admin.php view




<?php

/* @var $this EditorController */

/* @var $model Articles */


$this->breadcrumbs=array(

	'Articles'=>array('index'),

	'Manage',

);


$this->menu=array(

	array('label'=>'List Articles', 'url'=>array('index')),

	array('label'=>'Create Articles', 'url'=>array('create')),

);


?>


<h1>Manage Articles</h1>







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

	'id'=>'articles-grid',

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

	'filter'=>$model,

'columns'=>array(

		'article_id',

		

        array(

        'name'=>'title',

        'type'=>'raw',

        'header'=>'Title',

        'value'=>'CHtml::link($data->title,array("articles/articles",

                                         "id"=>$data->article_id))',

        )

        

		,

		 array(

                        'name'=>'user_id',

                        'header'=>'Writer',

                        'value'=>'$data->user->en_username',

                        ),

         array(

                       'name'=>'active',

                       'type'=>'html',

                       'value'=>'$data->getStatus($data->active)',




                ),

        

        array(

                        'name'=>'article',

                        'header'=>'Article',

                        'value'=>'substr($data->article, 0,50)',

                        ),

                          array(

                        'name'=>'section_id',

                        'header'=>'Section',

                        'value'=>'$data->section->name',

                        ),


		/*

		'user_id',

		'section_id',

		'image',

		'edited',

		'active',

		'editby',

		'edite_date',

		*/

	

        

               array

(

    'class'=>'CButtonColumn',

    'template'=>'{active} {inactive} {update} ',

    'header'=>'Options',

    'buttons'=>array

    (

        'active' => array

        (

            'label'=>'Active Article',

            'imageUrl'=>Yii::app()->request->baseUrl.'/images/active.png',

            'Visible'=>'$data->status =0 ',

            'url'=>'Yii::app()->createUrl("adminarticle/active", array("id"=>$data->article_id))',

        ),

          'inactive' => array

        (

            'label'=>'Inactive Article',

            'imageUrl'=>Yii::app()->request->baseUrl.'/images/inactive.png',

            'Visible'=>'$data->status =0 ',

            'url'=>'Yii::app()->createUrl("adminarticle/inactive", array("id"=>$data->article_id))',

        ),

        

                     'update' => array

        (

            'label'=>'Edit',

            'imageUrl'=>Yii::app()->request->baseUrl.'/images/update.png',

            'Visible'=>'$data->status =0 ',

            'url'=>'Yii::app()->createUrl("article/update", array("id"=>$data->article_id))',

        ),

        

        

        

    ),

),

	),

)); ?>




any help , thanks in advance

By specifying the "condition" property of the criteria, you are overwriting the conditions created by "compare" method.

http://www.yiiframework.com/doc/api/1.1/CDbCriteria#compare-detail

You may do something like this:




    $critaria = new CDbCriteria;

    $criteria->compare('user_id', Yii::app()->user->id);

    $criteria->compare('article_id', $this->article_id);

    ...



Thank you softark , I edit my code and it’s work now .

the new code :





 $user_id=Yii::app()->user->id ;




		$criteria=new CDbCriteria;

        

      

        

    

       

        $criteria->addCondition('section_id IN (select section_id from tbl_supervisor where user_id=:user_id)');

        $criteria->params=array(":user_id"=>Yii::app()->user->id);

		$criteria->compare('article_id',$this->article_id);

		$criteria->compare('title',$this->title,true);

		$criteria->compare('article',$this->article,true);

        

       


		 return new CActiveDataProvider(get_class($this), array(

            'criteria'=>$criteria,

		));