我正在进行项目YII.我有Production表,在那里我category_id和brand_id两个列.现在,我想要做的是,只要使用CActiveDataProvider这些特定的行取到$dataprovider它有那些category_id和brand_id我$cat和$brnd阵列.我做到了category_id,但我没有得到任何东西如何把它们都放在条件上.这是我的代码,请帮忙.
$dataProvider=new CActiveDataProvider(Production::model(),
array(
'criteria'=>array('condition' => 'category_id IN ('.implode(',',$cat).')'),
'pagination' => array('pageSize'=>Yii::app()->params['productsPerPage']),
)
);
Run Code Online (Sandbox Code Playgroud)
$criteria=new CDbCriteria;
$criteria->addInCondition('category_id',$cat,'AND');
$criteria->addInCondition('brand_id',$brnd,'AND');
$dataProvider=new CActiveDataProvider(
'Production',
array(
'criteria'=>$criteria,
'pagination' => array('pageSize'=>Yii::app()->params['productsPerPage']),
)
);
Run Code Online (Sandbox Code Playgroud)
最后一个参数addInCondition指定如何将条件附加到现有条件,因此如果需要
category_id IN (x,y,z) AND brand_id IN (a,b,c)
Run Code Online (Sandbox Code Playgroud)
即AND你不需要指定第三个参数(默认为AND),但是如果你想要的话OR,就像在
category_id IN (x,y,z) OR brand_id IN (a,b,c)
Run Code Online (Sandbox Code Playgroud)
那你需要用
$criteria->addInCondition('brand_id',$brnd,'OR');
Run Code Online (Sandbox Code Playgroud)