php 自动绑定model,thinkphp自动完成:Model类的$_auto属性

array(填充字段,填充内容,[填充条件,附加规则])

说明

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

填充规则必须配合附加规则完成

填充时间可选包括:Model:: MODEL_INSERT或者1 新增数据的时候处理(默认)Model:: MODEL_UPDATE或者2更新数据的时候处理Model:: MODEL_BOTH或者3所有情况都进行处理

附加规则可选包括:function :使用函数,表示填充的内容是一个函数名 callback :回调方法 ,表示填充的内容是一个当前模型的方法field :用其它字段填充,表示填充的内容是一个其他字段的值ignore :为空则忽略,3.1.2版本开始支持,如果该字段的值恒等于空字符串则忽略该字段的值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);    //setProperty可以动态的改变验证规则,只是简单的将原来的验证规则进行替换。

$User->create();

动态设置自动完成规则还可以使用auto方法动态设置自动完成规则,例如:$this->auto($auto)->create();

其中$auto变量的规范和_auto属性的定义规则一致,而且还可以支持函数调用(由于PHP本身的限制,在类的属性定义中不能调用函数)。通过这一改进,以前需要支持数据自动完成,必须定义模型类的情况已经不再出现,你完全可以通过M方法实例化模型类后使用动态设置完成自动完成操作。

33

array(填充字段,填充内容,[填充条件,附加规则])说明填充字段必须就是需要进行处理的表单字段,这个字段不一定是数据库字段,也可以是表单的一些辅助字段,例如确认密码和验证码等等。填充规则必须配合附加规则完成填充时间可选包括:Model:: MODEL_INSERT或者1 新增数据的时候处理(默认)Model:: MODEL_UPDATE或者2更新数据的时候处理Mo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值