BoyLee 2011-04-11 12:45:44 3896次浏览 8条回复 0 0 0

场景:最简单的一个model 里面有id,name,datetime 3个东西,然后filter是3个文本框

我想做的事:我在文版框里输入内容然后就会过滤,如果我想这样做,当用户输入123,过滤条件在使用之前变成 123321这样的,我应该在哪个位置找到这个过滤的步骤?

  • 回复于 2011-04-11 12:45 举报

    就是一直没找到切入点。。。。舰长赐教。

  • 回复于 2011-04-12 13:42 举报

    楼主说的是GridView的filter,不是表单验证!

  • 回复于 2011-04-12 13:57 举报

    那更简单了,模型的CActiveRecord::search()方法:

    public function search()
    {
      $criteria=new CDbCriteria;
      $attributes = array('id', 'name', 'datetime');
      foreach($attributes as $attribute) {
        if('ascii' == mb_detect_encoding($this->$attribute)) {
          $this->$attribute .= strrev($this->$attribute);
        }
      }
      $criteria->compare('id',$this->uid,true);
      $criteria->compare('name',$this->schemeId,true);
      $criteria->compare('datetime',$this->schemeId);
      return new CActiveDataProvider(get_class($this), array(
        'criteria'=>$criteria,
      ));
    }
    
  • 回复于 2011-04-13 14:14 举报

    也就是说$this->attribute 对应 每个我在filter里输入的值?

  • 回复于 2011-04-13 14:19 举报

    大概这个思路吧,我也木有测试过……

  • 回复于 2011-04-13 14:32 举报

    我就是也没测试过,所以 想吃现成得,哈哈, 我太懒了。

  • 回复于 2011-07-15 11:29 举报

    怎么根据帖子的ID显示评论呢??用gridview

您需要登录后才可以回复。登录 | 立即注册