У меня есть список заказов, у каждого заказа есть дата создание. Задача простая - вывести все заказы в диапазоне дат в cgridview. Проблема в том, что даже если я вывожу нужные мне заказы, сортировка по столбикам вернет мне опять все записи по всем датам, а не по диапазону. То же и с фильтром происходит.
Модель:
Код: Выделить всё
public $start;
public $end;
public function search() {
$criteria = new CDbCriteria;
if($this->start != '' && $this->end != ''){
$criteria->condition="date >= '".$this->start."' AND date <= '".$this->end."'";
}
$criteria->compare('id', $this->id);
$criteria->compare('date', $this->date, true);
return new CActiveDataProvider($this, array(
'criteria' => $criteria,
'pagination'=>array(
'pageSize'=>'50',
),
));
}
Код: Выделить всё
$model = new Orders('search');
$start = ''; // дата начала
$end = ''; // дата конца
if(isset($_POST['start']) && $_POST['start']!='' && isset($_POST['end']) && $_POST['end']!=''){
$start = date("Y-m-d H:i:s", strtotime($_POST['start']));
$end = date("Y-m-d H:i:s", strtotime($_POST['end']));
}
if (isset($_GET['Orders'])){
$model->attributes = $_GET['Orders'];
}
$model->setAttributes(array('start'=>$start,'end'=>$end));
$this->render('admin', array('model' => $model,'start'=>$start,'end'=>$end));
Код: Выделить всё
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'orders-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array( ... )));