Php Yii CGridView使用大于/小于运算符搜索

Php Yii CGridView使用大于/小于运算符搜索,php,yii,Php,Yii,我试图找到一种方法,在包含整数值的列中使用大于/小于运算符过滤CGridView结果。 我可以使用“过滤器”参数吗?还是需要在模型文件中创建新方法 $this->widget('zii.widgets.grid.CGridView', array( 'id'=>'event-grid', 'dataProvider'=>$model->search(), 'filter'=>$model, 'columns' => array(

我试图找到一种方法,在包含整数值的列中使用大于/小于运算符过滤CGridView结果。 我可以使用“过滤器”参数吗?还是需要在模型文件中创建新方法

$this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'event-grid',
    'dataProvider'=>$model->search(),
    'filter'=>$model,
    'columns' => array(
        array(
            'name'=>'score_d_min',
            'header'=>'D',
            'value'=>'$data->score_d_min',
            'filter'=> , // not really sure what to put in here
        ),
    ),
));

您可以通过以下步骤实现此目标:

1-向模型中添加两个属性

public $compare; //compare value
public $compareOp; //compare operator, for example [>,<,>=,<=]
3-在您的
GridView
中添加以下列

array(
        'name'=>'score_d_min',
        'header'=>'d',
        'value'=>'$data->score_d_min',
        'filter'=> CHtml::dropDownList('User[compareOp]', $model->compareOp,
        array('>'=>'>','<'=>'<','>='=>'>=','<='=>'<=','='=>'='),array('style'=>'width:50px;')) .
        CHtml::textField('User[compare]',$model->compare,array('style'=>'width:100px;'))
    ),    
现在,您有如下内容(图片看起来与您的不同,因为我正在测试用户表上测试它):

在图片中,它比较所需的列,如:

column >= 2
结果(在我的机器中,我有3个用户id为(1,2,3),因此它只显示id为2,3的用户):

或:

注意事项:

  • 我为
    =
    
    
    $criteria->compare('score_d_min', $this->compareOp .$this->compare);
    
    column >= 2