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), )); }}
视图
控制器
public function actionTimefliter() { $model=new Timefliter(); $this->render('timefliter',array('model'=>$model,)); }
回复讨论(解决方案)
提交之后又没把获取的日期值赋值给模型,那在search方法中怎么会过滤
怎么复制给模型
可以用另外一种解决方案,自己新建一个dataprovinder 然后sql语句查询时间之间的记录
$model->startTime=$_POST['starttime']; //传值给模型$model->endTime=$_POST['endtime'];
谢谢楼上两位,都搞定了,两种方法都是可行的,不过第二种比较慢