yii CGridView日期范围

时间:2015-01-14 14:47:13

标签: php yii cgridview

我想在CGridView上使用日期范围,我将这两个字段称为from_date和to_date并且它们在模型中是公共的,代码正在工作但问题是from_date和to_date不能正常工作,当我选择from_date结果时是正确的,但如果我选择to_date它只取最后一个to_date值,那么请你帮助我

在模特

public $from_date;
public $to_date;
//at Search()
!empty($this->to_date ) ? $criteria->addCondition('date <= "' . $this->to_date. '" ') : "";
!empty($this->from_date ) ? $criteria->addCondition('date  >= "' . $this->from_date . '" ') :  "";

在View

$this->widget('zii.widgets.grid.CGridView', array(
'id' => 'bank-grid',
'dataProvider' => $model->search(),
'afterAjaxUpdate' => "function()  { jQuery('#from_date').datepicker({'dateFormat':'yy-mm-dd'}) , jQuery('#to_date').datepicker({'dateFormat':'yy-mm-dd'})   }",
'filter' => $model,    
'ajaxUpdate' => true,
'columns' => array(
'account',
'name',
array(
    'name' => 'date',
    'filter' => $this->widget( 'zii.widgets.jui.CJuiDatePicker', array(
            'model'          => $model,
            'attribute'      => 'from_date',
            'options' => array('firstDay' => 6, 'dateFormat' => 'yy-mm-dd'),
            'htmlOptions' => array('style' => 'width: 100px;' , 'placeHolder'=>'From:' , 'id'=>'from_date'),
        ), true ) . $this->widget( 'zii.widgets.jui.CJuiDatePicker', array(
            'model'          => $model,
            'attribute'      => 'to_date',
            'options' => array('firstDay' => 6, 'dateFormat' => 'yy-mm-dd'),
            'htmlOptions' => array('style' => 'width: 100px;' , 'placeHolder'=>'To:', 'id'=>'to_date'),
        ), true ),
),
array(
        'class' => 'CButtonColumn',
    ),
),
));

请注意我复制了部分代码,如果我忘记了一些括号或列对不起

2 个答案:

答案 0 :(得分:1)

我猜你的病情需要使用BETWEEN sql ...

$criteria->addBetweenCondition('attributeName', 'value1', 'value2');

答案 1 :(得分:0)

尝试像这样在addCondtion()中设置THIRD参数,没有它只会使用一个条件。

$criteria->addCondition('t.id',$variable, 'AND'); // see 

查看更多:http://www.yiiframework.com/doc/api/1.1/CDbCriteria#addCondition-detail

编辑:

 $criteria=new CDbCriteria;
 $criteria->addCondition('from_date',$this->from_date,'AND');
 $criteria->addCondition('to_date',$this->to_date,'AND');