gpt4 book ai didi

php - 如何为 CActiveDataProvider 设置多个条件?

转载 作者:行者123 更新时间:2023-12-02 10:43:19 25 4
gpt4 key购买 nike

我正在进行 YII 项目。我有 Production 表,其中有 category_idbrand_id 两列。现在我想做的是,只需使用 CActiveDataProvider 将这些特定行获取到具有 category_id$dataprovider我的 $cat$brnd 数组中的brand_id。我为 category_id 制作了它,但我不知道如何将它们都放在条件下。这是我的代码,请帮忙。

$dataProvider=new CActiveDataProvider(Production::model(),
array(
'criteria'=>array('condition' => 'category_id IN ('.implode(',',$cat).')'),
'pagination' => array('pageSize'=>Yii::app()->params['productsPerPage']),
)
);

最佳答案

使用addInCondition of CDbCriteria :

$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']),
)
);

addInCondition 的最后一个参数指定如何将条件附加到现有条件,因此如果您想要

category_id IN (x,y,z) AND brand_id IN (a,b,c)

AND 那么你不需要指定第三个参数(默认为 AND),但如果你想要 OR,如

category_id IN (x,y,z) OR brand_id IN (a,b,c)

那么你需要使用

$criteria->addInCondition('brand_id',$brnd,'OR');

关于php - 如何为 CActiveDataProvider 设置多个条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14393046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com