ThinkPHP3.1新特性之动态设置自动完成和自动验证示
在ThinkPHP 3.1版本中,模型的自动验证和自动完成功能得到了进一步的优化。以前,我们需要在模型中预先定义这些规则,或者使用setProperty方法动态设置属性,这对于动态调整来说显然不太方便。现在,在ThinkPHP 3.1版本中,我们可以通过使用模型的连贯操作(auto和validate方法)来实现动态设置自动完成和自动验证规则。这一改进使得我们可以在Action中灵活地使用这些规则。
假设我们需要对一个用户模型进行验证和自动处理操作。我们可以通过实例化模型类并使用M方法来完成。以下是具体的操作示例:
我们定义验证规则(validate)和自动完成规则(auto):
```php
$validate = array(
array('verify','require','验证码必须!'),
array('name','','帐号名称已经存在!',0,'unique',1),
);
$auto = array (
array('password','md5',1,'function'),
array('create_time','time',2,'function'),
);
```
然后,我们实例化用户模型,并使用auto和validate方法进行动态设置:
```php
M('User')->auto($auto)->validate($validate)->create();
```
通过这种方式,我们可以根据具体需求动态地设置自动验证和自动完成规则。这些规则与模型类的_auto和_validate属性的定义规则一致,并且支持函数调用。需要注意的是,由于PHP本身的限制,我们不能在类的属性定义中调用函数。auto和validate方法必须在create方法之前被调用。这一改进为我们提供了更大的灵活性,让我们不再依赖D方法来完成模型的实例化操作。我们可以根据实际需求动态地调整验证和自动完成规则,使得代码更加灵活和易于维护。这一功能对于快速开发和灵活调整模型规则非常有用。
编程语言
- ThinkPHP3.1新特性之动态设置自动完成和自动验证示
- js中小数向上取整数,向下取整数,四舍五入取整数
- JavaScript匿名函数之模仿块级作用域
- javascript下正则匹配百分比的代码
- 微信小程序实现鼠标拖动效果示例
- mysql 5.7.18 winx64 免安装 配置方法
- 详解vue移动端项目的适配(以mint-ui为例)
- js中setTimeout()与clearTimeout()用法实例浅析
- 详解node服务器中打开html文件的两种方法
- 对象不支持indexOf属性或方法的解决方法(必看)
- 存储于xml中需要的HTML转义代码
- jQuery操作Table技巧大汇总
- php匹配网址的正则 几乎可以匹配任何网址
- 对vue里函数的调用顺序介绍
- JS模仿编辑器实时改变文本框宽度和高度大小的方
- js实现不提示直接关闭网页窗口