YII search 方法中 compare比较时的一个bug

功能:

         通过前台一个文本框实现对名字或邮箱的模糊查询,并且过滤掉状态为-1的记录(-1状态代表为删除);


         错误代码

public function search($all = false)
{
// @todo Please modify the following code to remove attributes that should not be searched.


$criteria=new CDbCriteria;


     //排除已删除的数据
        if(!$all)
            $criteria->addCondition('status != -1');

$criteria->compare('username',$this->username,true,'OR');
$criteria->compare('email',$this->email,true,'OR');

          return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
            'sort'=>array(
                'defaultOrder'=>'id DESC',
            ),
            'pagination'=>array(
                'pageSize'=>5, //TODO 分页数
            ),
));
}

 

            正确代码:

           public function search($all = false)
{
// @todo Please modify the following code to remove attributes that should not be searched.


$criteria=new CDbCriteria;

$criteria->compare('username',$this->username,true,'OR');
$criteria->compare('email',$this->email,true,'OR');

    //排除已删除的数据
        if(!$all)
            $criteria->addCondition('status != -1');


          return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
            'sort'=>array(
                'defaultOrder'=>'id DESC',
            ),
            'pagination'=>array(
                'pageSize'=>5, //TODO 分页数
            ),
));
}



即 把
            $criteria->addCondition('status != -1');   这个方法放到  $criteria->compare()方法之后才行!!!!


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值