How To Use In Clause In Cdbcriteria With Cactivedataprovider In Yii?

Here is my working code, without IN clause conditions -


$dataProvider = new CActiveDataProvider('UserInfo',

	array('id'=>'user-detail',

	  'sort'=>array('defaultOrder'=>'id DESC', 

			  'attributes'=>array('id', 'fname', 'lname', 'city')

		),

	 'criteria' => array(

            'condition' => 'Staus=:Staus',

            'params' => array(':Staus' => 1),

       ),

	'pagination'=>array

		(

			'pageSize'=>10)

		)

	);

Now i also want to use IN clause in the condition, how can use?

I’m trying like this, but getting error - Array to string conversion


'criteria' => array(

            'condition' => 'Staus=:Staus, id=:id',

            'params' => array(':Staus' => 1, ':id' => array(1,4,10,15,20)),

       ),

Please help me to resolve my issue, thanks in advance!

Something like this:




$criteria = new CDbCriteria();

$criteria->addColumnCondition(array('Staus'=>1));

$criteria->addInCondition('id', array(1,4,10,15,20));


$dataProvider = new CActiveDataProvider('UserInfo', array(

    'criteria'=>$criteria,

    ...

));



Thanks for the reply but i need in with Cactivedataprovider. Can you tell me how to modify my existing code. because i’m getting an error when i’m trying like this -


'criteria' => array(

            'condition' => 'Staus=:Staus, id=:id',

            'params' => array(':Staus' => 1, ':id' => array(1,4,10,15,20)),

       ),

I showed you how in my post.

This will work




$criteria=new CDbCriteria;

$criteria->compare('Staus',      array(1,4,10,15,20));


$dataProvider = new CActiveDataProvider('UserInfo', array(

    'criteria'=>$criteria,

    ...

));




+1

Sorry sir, my mistakes its working fine. thanks a lot for your help :D :)