【发布时间】:2015-11-23 07:46:52
【问题描述】:
下午好
我的视图中有一个日期选择器,用于选择 start_date 和 end_date。 我的问题是我无法在选定的日期范围内获得正确的数据。 我在下面有一张示例图片向您展示我的意思。
样本数据:
如果我选择 start_date (2015-10-01) 然后 end_date (2015-10-29), 它只返回这个。
而不是这个
我只得到两个日期,即选择的日期和选择的日期。问题是它应该返回候选人 1、2 和 3,因为它们的日期在日期范围 start_date (2015-10-01) 到 end_date (2015-10-29)。我的代码有什么问题。请帮忙。有人可以查看我的代码吗?也许我错过了什么。
这是我的看法。
<form>
<div class="form-group"><label>Date From</label>
<?php
$this->widget('zii.widgets.jui.CJuiDatePicker', array(
'model' => $model,
'name' => 'start_date',
'options'=>array(
'dateFormat'=>'yy-mm-dd',
),
'htmlOptions'=>array(
'class'=>'form-control',
'placeholder'=>'From',
'value' => $search_date_start,
),
));
?>
</div>
<div class="form-group"><label>To</label>
<div class="controls" style='margin-top: 5px;'>
<?php
$end_date = date('m-d-Y');
$this->widget('zii.widgets.jui.CJuiDatePicker', array(
'model' => $model,
'name' => 'end_date',
'options'=>array(
'dateFormat'=>'yy-mm-dd',
),
'htmlOptions'=>array(
'class'=>'form-control',
'placeholder'=>'To',
'value' => $search_date_end,
),
));
?>
</div>
</div>
</div>
<div class="form-group">
<input type="submit" name='search_btn' value="Search" class='btn btn-primary '>
<input type="submit" name='reset_btn' value="Reset" class='btn btn-default '>
</div>
</form>
在我的控制器中,我添加了这段代码。
if(isset($_POST['search_btn'])) {
if (isset($_POST['start_date']) && isset($_POST['end_date'])) {
$search_date_start = $_POST['start_date'];
$search_date_end = $_POST['end_date'];
Yii::app()->session['start_date_evaluation'] = $search_date_start;
Yii::app()->session['end_date_evaluation'] = $search_date_end;
}
if (isset($_POST['search'])) {
$search = $_POST['search'];
Yii::app()->session['search_evaluation'] = $search;
}
}
在我的模型中,我有这个代码。
public function search($candidate_id, $search_date_start, $search_date_end, $search) {
// Warning: Please modify the following code to remove attributes that
// should not be searched.
$criteria = new CDbCriteria;
$criteria->compare('id', $this->id);
$criteria->compare('evaluation_form_id', $this->evaluation_form_id);
$criteria->addSearchCondition('evaluatee', $search);
$criteria->addSearchCondition('start_date', $search_date_start);
$criteria->addSearchCondition('end_date', $search_date_end);
if ($candidate_id !== '') {
$criteria->compare('employee_id', $candidate_id);
} else {
$criteria->compare('employee_id', $this->employee_id);
$criteria->compare('evaluation_code', $this->evaluation_code);
$criteria->compare('start_date', $this->start_date, true);
$criteria->compare('end_date', $this->end_date, true);
$criteria->compare('evaluatee', $this->evaluatee, true);
$criteria->compare('date_created', $this->date_created, true);
$criteria->compare('created_by', $this->created_by, true);
}
if ($search_date_end !== '' && $search_date_start !== ''){
$criteria->compare('start_date', $search_date_start, false, '>=');
$criteria->compare('end_date', $search_date_end, false, '<=');
}
return new CActiveDataProvider($this, array(
'criteria' => $criteria,
));
}
【问题讨论】:
-
这个很不清楚。与其将候选名称涂黑,不如替换为假名称,并在您想要的和实际显示的内容上保持一致。
-
对此感到抱歉。我已经编辑了我的帖子并更改了示例图片。
标签: php yii datepicker