ThinkPHP3.0完全开发手册                                           

 

6.16               自动完成

Model类定义 $_auto 属性,可以完成数据自动处理功能,用来处理默认值、数据过滤以及其他系统写入字段。$_auto属性是由多个填充因子组成的数组。

填充因子格式: array(填充字段,填充内容,[填充条件,附加规则])

填充字段

必须

就是需要进行处理的表单字段,这个字段不一定是数据库字段,也可以是表单的一些辅助字段,例如确认密码和验证码等等。

填充规则

必须

配合附加规则完成

填充时间

可选

包括:

Model:: MODEL_INSERT或者1 新增数据的时候处理(默认)

Model:: MODEL_UPDATE或者2更新数据的时候处理

Model:: MODEL_BOTH或者3所有情况都进行处理

附加规则

可选

包括:

function :使用函数,表示填充的内容是一个函数名

callback :回调方法 ,表示填充的内容是一个当前模型的方法

field :用其它字段填充,表示填充的内容是一个其他字段的值

string :字符串(默认方式)

 

示例:

protected $_auto = array ( 

array('status','1'),  // 新增的时候把status字段设置为1

array('password','md5',1,'function') , // password字段在新增的时候使md5函数处理

array('name','getName',1,'callback'), // name字段在新增的时候回调getName方法

array('create_time','time',2,'function'), // create_time字段在更新的时候写入当前时间戳

);

使用自动填充可能会覆盖表单提交项目。其目的是为了防止表单非法提交字段。使用Model类的create方法创建数据对象的时候会自动进行表单数据处理。

和自动验证一样,自动完成机制需要使用create方法才能生效。并且,也可以在操作方法中动态的更改自动完成的规则。

 $auto = array ( 

array('password','md5',1,'function'// password字段在新增的时候使md5函数处理

);

$User-> setProperty("_auto",$auto);

$User->create();


NetPc