热搜:NVER node 开发 php

YII 按照日期过滤不起作用,怎么回事?

2024-09-15 12:25:01
YII 按照日期过滤不起作用,怎么回事?

Yii PHP 日期过滤

YII  按照日期过滤不起作用,怎么回事?

模型

<?php/** * This is the model class for table "user". * * The followings are the available columns in table 'user': * @property integer $id * @property string $uname */class Timefliter extends CActiveRecord{	/**	 * Returns the static model of the specified AR class.	 * @param string $className active record class name.	 * @return User the static model class	 */	public static function model($className=__CLASS__)	{		return parent::model($className);	}	/**	 * @return string the associated database table name	 */	public function tableName()	{		return 't_time';	}		public $starttime;	public $endtime;   				/**	 * @return array validation rules for model attributes.	 */	public function rules()	{		// NOTE: you should only define rules for those attributes that		// will receive user inputs.		return array(			array('id', 'safe'),			//array('id', 'numerical', 'integerOnly'=>true),			array('time', 'safe'),						// The following rule is used by search().			// Please remove those attributes that should not be searched.			array('id, time', 'safe', 'on'=>'search'),		);	}	/**	 * @return array relational rules.	 */	public function relations()	{		// NOTE: you may need to adjust the relation name and the related		// class name for the relations automatically generated below.		return array(		);	}	/**	 * @return array customized attribute labels (name=>label)	 */	public function attributeLabels()	{		return array(		'id'=> '编号',        'time'=> '时间',		);	}	/**	 * Retrieves a list of models based on the current search/filter conditions.	 * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.	 */	public function 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('time','>='.$this->starttime);		$criteria->compare('time','<='.$this->endtime);		//是否开启模糊搜索,在后面true中实现		return new CActiveDataProvider($this, array(			'criteria'=>$criteria,		    			//'pagination'=>array('pagesize'=>$pagesize?pagesize:$page),		    //'pagination'=>array('pagesize'=>$page),		));	}}




视图
开始时间<?php $this->widget('zii.widgets.jui.CJuiDatePicker',array( 'language'=>'zh_cn', 'name'=>'starttime', 'value'=>$query['start'] ? $query['start'] : Date('Y-m-d'), 'options'=>array( 'showAnim'=>'fold', 'showOn'=>'both', 'buttonImage'=>Yii::app()->request->baseUrl.'/images/calendar.gif', //'maxDate'=>'new Date()', 'buttonImageOnly'=>true, 'dateFormat'=>'yy-mm-dd', ), 'htmlOptions'=>array( 'style'=>'height:18px', 'maxlength'=>8, ), )); //echo $value;exit; //http://blog.csdn.net/dreamzml/article/details/8227646?> 结束时间<?php $this->widget('zii.widgets.jui.CJuiDatePicker',array( 'language'=>'zh_cn', 'name'=>'endtime', 'value'=>$query['end'] ? $query['end'] : Date('Y-m-d'), 'options'=>array( 'showAnim'=>'fold', 'showOn'=>'both', 'buttonImage'=>Yii::app()->request->baseUrl.'/images/calendar.gif', //'maxDate'=>'new Date()', 'buttonImageOnly'=>true, 'dateFormat'=>'yy-mm-dd', ), 'htmlOptions'=>array( 'style'=>'height:18px', 'maxlength'=>8, ), )); ?>



控制器

	public function actionTimefliter()	{			$model=new Timefliter();		$this->render('timefliter',array('model'=>$model,));	}


回复讨论(解决方案)

提交之后又没把获取的日期值赋值给模型,那在search方法中怎么会过滤

怎么复制给模型

可以用另外一种解决方案,自己新建一个dataprovinder 然后sql语句查询时间之间的记录

$model->startTime=$_POST['starttime'];    //传值给模型$model->endTime=$_POST['endtime'];  


谢谢楼上两位,都搞定了,两种方法都是可行的,不过第二种比较慢