ホームページ > バックエンド開発 > PHPチュートリアル > YII の日付によるフィルタリングが機能しません。何が起こっていますか?

YII の日付によるフィルタリングが機能しません。何が起こっていますか?

WBOY
リリース: 2016-06-23 14:13:06
オリジナル
874 人が閲覧しました

Yii PHP 日付フィルタリング

YII 日付によるフィルタリングが機能しません。何が起こっていますか?

Model

<?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),		));	}}
ログイン後にコピー




View
<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>
ログイン後にコピー



Controller

	public function actionTimefliter()	{			$model=new Timefliter();		$this->render('timefliter',array('model'=>$model,));	}
ログイン後にコピー


送信後、取得された日付値はにあるモデルに割り当てられています。検索方法 フィルターする方法

モデルにコピーする方法

別のソリューションを使用して、自分で新しいデータプロバイダーを作成し、SQL ステートメントでレコードをクエリすることもできます

$model->startTime=$_POST['starttime'];    //传值给模型$model->endTime=$_POST['endtime'];  
ログイン後にコピー

上の 2 人に感謝します。解決しました。2 つの方法どちらも実行可能ですが、2 番目の方法は時間がかかります

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート