关于thinkphp 的$_auto自动完成配制传参问题

关于自动完成规则的自定义方法与传值

遇到时间字段填充时,需要清清时,不能清空问题。

$_auto 规则用自定议法传值问题在配制项最后加一个参数。 

// array(‘field’,’填充内容’,’填充条件’,’附加规则’,[额外参数])

实便配制:

array('goumairiqi','strtotimeupdate',self::MODEL_BOTH,'callback','goumairiqi'),

//实现方法

//$t  是表单传过来的值   $y 是配制中传过去的值

	protected function strtotimeupdate($t,$y){
  		if(empty($t)){
			return null;
		}else{
			return strtotime($t);
		}
	}

同时在这里也可以接收到$_POST值

如果遇到不能传值, 修改框加代码 Model.class.php

在 private function autoOperation(&$data,$type) 这个方法里面

                    switch($auto[3]) {
                        case 'function':    //  使用函数进行填充 字段的值作为参数
                        case 'callback': // 使用回调方法
                            $args = isset($auto[4])?(array)$auto[4]:array();
                            if(isset($data[$auto[0]])) {
                                array_unshift($args,$data[$auto[0]]);
                            }
 
                            //by qchlian 解决回调函数传参bug
                            if($args && $auto[4]){
                                foreach($args as $k1=>$v1){ 
                                    eval("\$v1 = \"$v1\";");
                                    $args[$k1]=$v1;
                                }
                            }//end by qchlian
                            
                            if('function'==$auto[3]) {
                                $data[$auto[0]]  = call_user_func_array($auto[1], $args);
                            }else{
                                $data[$auto[0]]  =  call_user_func_array(array(&$this,$auto[1]), $args);
                            }
                            break;
                        case 'field':    // 用其它字段的值进行填充
                            $data[$auto[0]] = $data[$auto[1]];
                            break;
                        case 'string':
                        default: // 默认作为字符串填充
                            $data[$auto[0]] = $auto[1];
                    }
我的是3.0的thinkphp