zoukankan      html  css  js  c++  java
  • 利用类的属性来对时间区间的搜索

    今天工作的时候遇到一个问题,一个模块的数据表只存了一个时间字段 add_time ,但是搜索是区间的。

    这个时候就可以用我的办法来解决了。这个问题比较常见,故而整理下来。


                <td >
                    操作时间 <input type="text" name="start_time" id="start_time" value="" class="Wdate" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd'})" size="15">
                  ~<input type="text" name="end_time" id="end_time" value="" class="Wdate" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd'})" size="15">
                </td>

    start_time 和 end_time 是数据库中没有的,

    add_time 数据库中存储的是这个字段


    接着需要在model中定义属性,start_time和end_time,因为需要在search方法中用到


    	public $startTime;
    	public $endTime;


    在执行搜索的控制器代码处,增加

    	    $model->attributes = $_POST['queryParams'];
                $_GET['page'] = $_POST['page'];
                
                $model->startTime = $_POST['queryParams']['start_time'];
                $model->endTime = $_POST['queryParams']['end_time'];


    这个时候程序对去找model中的search,在search方法中接着处理

    	$criteria=new CDbCriteria();
    
    	$criteria->compare('order_type',$this->order_type);
    	$criteria->compare('order_id',$this->order_id);
    	$criteria->compare('order_sn',$this->order_sn);
    	$criteria->compare('operator',$this->operator);
    	$criteria->compare('notes',$this->notes);
    	$criteria->compare('front_show', $this->front_show);
    	<span style="color:#ff0000;">if($this->endTime){
    		$criteria->addCondition('add_time <='.strtotime($this->endTime));
    	}
    	if($this->startTime){
    		$criteria->addCondition('add_time >='.strtotime($this->startTime));
    	}</span>
    	$criteria->order = 'order_id';

    这样就解决了。

    但是这样并不等于完成了,因为方法原理你明白了?


    原理:

    利用model类中的属性 start_time和end_time ,在执行这个方法的时候先给他们赋值,在执行search方法的时候再去调用赋的值。






    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    Meet so Meet. C plusplus I-PLUS....
  • 相关阅读:
    13-02 Java 数组高级算法,Arrays类
    从0移植uboot (二) _uboot启动流程分析
    Linux input子系统编程、分析与模板
    跟着内核学框架-从misc子系统到3+2+1设备识别驱动框架
    Linux驱动技术(八) _并发控制技术
    Linux驱动技术(七) _内核定时器与延迟工作
    Linux驱动技术(六) _内核中断
    Linux驱动技术(五) _设备阻塞/非阻塞读写
    Linux驱动技术(四) _异步通知技术
    Linux驱动技术(三) _DMA编程
  • 原文地址:https://www.cnblogs.com/iplus/p/4489974.html
Copyright © 2011-2022 走看看