ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码


Posted in PHP onJune 23, 2014

在ThinkPHP3.1版本之前,如果需要设置自动验证或者自动完成,必须定义在模型中,或者通过setProperty方法动态设置属性来完成,但是这样做的缺点是不太方便动态改变和调整 。

ThinkPHP3.1版本在模型类中增加auto和validate两个连贯操作,用于动态设置自动完成和自动验证规则,现在可以在Action中使用,示例代码如下:

$validate = array(
 array(verify,require,验证码必须!), 
 array(name,,帐号名称已经存在!,0,unique,1), 
 );
$auto = array ( 
 array(password,md5,1,function) , 
 array(create_time,time,2,function), 
 );
M(User)->auto($auto)->validate($validate)->create();

其中$auto和$validate变量的规范和模型类的_auto和_validate属性的定义规则一致,而且还可以支持函数调用(由于PHP本身的限制,在类的属性定义中不能调用函数) 。

auto和validate方法必须在create方法之前被调用 。

通过这一改进,你完全可以通过M方法实例化模型类后使用动态设置完成自动验证和自动完成操作,不必再依赖D方法了 。

PHP 相关文章推荐
消息持续发送的完整例子
Oct 09 PHP
PHP 定界符 使用技巧
Jun 14 PHP
PHP操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
Nov 10 PHP
Zend的Registry机制的使用说明
May 02 PHP
discuz加密解密函数使用方法和中文注释
Jan 21 PHP
PHP常用正则表达式集锦
Aug 17 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
Mar 18 PHP
php提交表单发送邮件的方法
Mar 20 PHP
PHP设计模式之简单投诉页面实例
Feb 24 PHP
ThinkPHP中where()使用方法详解
Apr 19 PHP
PHP双向链表定义与用法示例
Jan 31 PHP
tp5.1 框架查询表达式用法详解
May 25 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
Jun 23 #PHP
ThinkPHP实现事务回滚示例代码
Jun 23 #PHP
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
Jun 23 #PHP
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
Jun 23 #PHP
ThinkPHP学习笔记(一)ThinkPHP部署
Jun 22 #PHP
ThinkPHP的URL重写问题
Jun 22 #PHP
分享一个php 的异常处理程序
Jun 22 #PHP
You might like
德生S2000电路分析
2021/03/02 无线电
PHP 中检查或过滤IP地址的实现代码
2011/11/27 PHP
那些年一起学习的PHP(二)
2012/03/21 PHP
php通过array_push()函数添加多个变量到数组末尾的方法
2015/03/18 PHP
PHP数组操作――获取数组最后一个值的方法
2015/04/14 PHP
Yii扩展组件编写方法实例分析
2015/06/29 PHP
PHP共享内存用法实例分析
2016/02/12 PHP
PHP dirname功能及原理实例解析
2020/10/28 PHP
原生javascript实现图片轮播效果代码
2010/09/03 Javascript
深入理解JavaScript系列(14) 作用域链介绍(Scope Chain)
2012/04/12 Javascript
jQuery 淡入淡出 png图在ie8下有黑色边框的解决方法
2013/03/05 Javascript
jquery获取颜色在ie和ff下的区别示例介绍
2014/03/28 Javascript
javascript类型转换示例
2014/04/29 Javascript
Js与Jq 获取页面元素值的方法和差异对比
2015/04/30 Javascript
javascript 面向对象function详解及实例代码
2017/02/28 Javascript
HTML5实现微信拍摄上传照片功能
2017/04/21 Javascript
Vue添加请求拦截器及vue-resource 拦截器使用
2017/11/23 Javascript
在vue项目实现一个ctrl+f的搜索功能
2020/02/28 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
2020/11/05 Javascript
[03:44]2014DOTA2国际邀请赛 71专访:DK战队赛前讨论视频遭泄露
2014/07/13 DOTA
[52:06]完美世界DOTA2联赛决赛日 Inki vs LBZS 第一场 11.08
2020/11/10 DOTA
六个窍门助你提高Python运行效率
2015/06/09 Python
教你用Python脚本快速为iOS10生成图标和截屏
2016/09/22 Python
详谈Numpy中数组重塑、合并与拆分方法
2018/04/17 Python
Python实现 PS 图像调整中的亮度调整
2019/06/28 Python
Python计算矩阵的和积的实例详解
2020/09/10 Python
python简单实现插入排序实例代码
2020/12/16 Python
HTML5中indexedDB 数据库的使用实例
2017/05/11 HTML / CSS
GAP美国官网:美国休闲时尚品牌
2016/08/26 全球购物
如何拷贝一整个Java对象,包括它的状态
2013/12/27 面试题
迎新晚会邀请函
2014/02/01 职场文书
幽默自我介绍演讲稿
2014/08/21 职场文书
运动会报道稿300字
2014/10/02 职场文书
教你如何使用Python开发一个钉钉群应答机器人
2021/06/21 Python
总结python多进程multiprocessing的相关知识
2021/06/29 Python
uniapp引入支付宝原生扫码插件步骤详解
2022/07/23 Javascript