選擇 Date Form 和 Date To,點 Search按鈕,會查詢出這兩個日期間的資料 public function search() { $criteria = new CDbCriteria; if(isset($_GET['date1'])&&isset($_GET['date2'])){ $criteria->addBetweenCondition('news_date',$_GET['date1'], $_GET['date2']); } //這個功能已經實現 //現在的問題是:如果使用者只選擇了 Date Form,就顯示Date Form 這個日期之後的所有資料 // 只選擇了 Date To就顯示Date To 這個日期之前的所有資料 return new CActiveDataProvider($this, array( 'criteria' => $criteria, )); }
回複討論(解決方案)
給你代碼,幾乎差不多
public function failureCat() { $criteria = new CDbCriteria; $criteria->compare('t.failItem', $this->failItem); $criteria->compare('logInfo.logProcess', $this->failStation); $criteria->compare('logInfo.logUpdate', '>=' . $this->dateToDatetime($this->startDate, 1)); $criteria->compare('logInfo.logUpdate', '<=' . $this->dateToDatetime($this->endDate)); $criteria->with = array('logInfo'); return new CActiveDataProvider('TestLogFail', array( 'pagination' => array( 'pageSize' => Yii::app()->params['pageSize'], ), 'criteria' => $criteria, 'sort' => array( 'defaultOrder' => 'logInfo.logUpdate desc', ), )); }