我想在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',
),
),
));
请注意我复制了部分代码,如果我忘记了一些括号或列对不起
答案 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');