首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

YII 按照日期过滤不起作用,咋回事

2013-06-19 
YII按照日期过滤不起作用,怎么回事?YII按照日期过滤不起作用,怎么回事?模型?php/** * This is the model

YII 按照日期过滤不起作用,怎么回事?
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),


));
}
}





视图

<form method="post" >

<!--时间查询-->

开始时间
<?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, 
            ), 
    )); 
?> 
<!--
$criteria->compare('create_time','<='.$this->endtime),//创建早间小于等于指定时间  

这个名字name就是widget里面的name的数据库字段,将它放到搜索页面中指定前端名字,和后端数据库的字段在模型module里面指定compare的条件即可实现时间搜索
-->




<input type="submit"  name="search" value="搜索"/>
</form>




控制器



public function actionTimefliter()
{
$model=new Timefliter();
$this->render('timefliter',array('model'=>$model,));
}
Yii PHP 日期过滤
[解决办法]
提交之后又没把获取的日期值赋值给模型,那在search方法中怎么会过滤
[解决办法]
可以用另外一种解决方案,自己新建一个dataprovinder 然后sql语句查询时间之间的记录

热点排行