2014-03-04 3 views
3

다음과 같은 문제가 있습니다. 나는 두 개의 상자에 날짜 (From-To)를 넣고 싶은 도시가있다. 일정 기간을 선택하면 그리드를 업데이트하려고하지만 바로 여기에 문제가 있습니다. 지금까지 내 코드는Yii + datepicker boostrap 업데이트 방법

)); 여기

은 JS의 날짜 선택기입니다 :

var checkin = $('#from').datepicker({ 

    onRender: function(date) { 

    } 
}).on('changeDate', function(ev) { 

    var newDate = new Date(ev.date); 
    newDate.setDate(newDate.getDate() + 1); 
    checkout.setValue(newDate); 
    checkin.hide(); 
    $('#to')[0].focus(); 
}).data('datepicker'); 

var checkout = $('#to').datepicker({ 
    onRender: function(date) { 

    } 
}).on('changeDate', function(ev) { 
    checkout.hide(); 
}).data('datepicker'); 

그리고 이것은 내 모델 기능 검색

public function search() { 
    //var_dump($this->date_first); exit; 
    $criteria = new CDbCriteria; 
    $criteria->with = (array('order', 'product')); 
    $criteria->compare('product.id', $this->product_id); 
    $criteria->compare('product.code', $this->code); 
    $criteria->compare('cnt', $this->cnt); 

    $criteria->select = 'count(t.product_id) AS cnt, t.product_id, product.code'; 
    $criteria->order = 'cnt DESC'; 
    $criteria->group='t.product_id'; 
    $criteria->limit = 10;  
    if (!empty($this->from_date) && empty($this->to_date)) { 
     $criteria->condition = "order.updated_at >= '$this->from_date'"; 
    } elseif (!empty($this->to_date) && empty($this->from_date)) { 
     $criteria->condition = "order.updated_at <= '$this->to_date'"; 
    } elseif (!empty($this->to_date) && !empty($this->from_date)) { 
     $criteria->condition = "order.updated_at >= '$this->from_date' and order.updated_at <= '$this->to_date'"; 
    } 


    $criteria->together = true; 

    return new CActiveDataProvider($this, array(
     'criteria' => $criteria, 
    )); 
} 

답변

0

첫째, 당신은 to_date 필드 수정해야합니다 :

$dateisOn = CHtml::textField('Event[from_date]', '', 
    array('id' => 'from', 'data-date-format' => 'yyyy-mm-dd')) . 
    ' До ' . CHtml::textField('Event[to_date]', '', 
    array('id' => 'to', 'data-date-format' => 'yyyy-mm-dd')); 

을 당신은 또한 수 검색 기능을 수정하려면 다음을 사용하면됩니다.

$criteria->compare('order.updated_at', '>='.$this->from_date); 
$criteria->compare('order.updated_at', '<='.$this->to_date); 
관련 문제