# 自动完成 自动完成是在模型层对数据进行自动处理的操作过程,执行模块的 save 会执行自动完成动作。 [TOC] #### 语法 ``` array(表单字段名,处理方法,方法类型,验证条件,处理时间) 方法类型: string(默认) 值为处理方法 如:array('click',100,'string') function 函数 如:array('click','ucfirst','function') method 模型方法 如:array('click','getClick','method') 条件 (可选): self::EXISTS_AUTO 值:1 有字段时 self::NOT_EMPTY_AUTO 值:2 值不为空时 self::MUST_AUTO 值:3 必须处理 self::EMPTY_AUTO 值:4 值为空时 self::NO_EXIST_AUTO 值:5 不存在字段时S_VALIDATE 值:5 不存在字段时处理 处理时间 (可选): self::MODEL_INSERT 值:1 插入时处理 self::MODEL_UPDATE 值:2 更新时处理 self::MODEL_BOTH 值:3 全部情况时处理 ``` ``` namespace home\model; use houdunwang\model\Model; class User extends Model{ public $table = 'user'; protected $auto=[ //更新时对 addtime 字段执行strtotime函数 ['addtime','strtotime','function',self::MUST_AUTO, self::MODEL_BOTH] ]; } ``` #### 一条规则执行多个方法 ``` protected $auto=[ //更新时对 addtime 字段执行strtotime函数 ['addtime','strtotime|strupper','function', self::MUST_AUTO , self::MODEL_INSERT] ]; ``` #### 设置默认字符串 ``` protected $auto = [ //在添加与修改时设置status值为2 [ 'status', 2, 'string', self::MUST_AUTO, self::MODEL_BOTH ] ]; ``` #### 设置模型方法 ``` protected $auto = [ //在添加与修改时设置status值为2 [ 'status', 'setPassword', 'method', self::MUST_AUTO, self::MODEL_BOTH ] ]; /** @param string $val 表单值 @param array $data 所有表单数据(经过自动完成处理后的) * public function setPassword($val,$data){ return md5($val); } ```