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 相关文章推荐
基于mysql的bbs设计(一)
Oct 09 PHP
php获取url字符串截取路径的文件名和扩展名的函数
Jan 22 PHP
解析thinkphp基本配置 convention.php
Jun 18 PHP
初识Laravel
Oct 30 PHP
php绘制一条直线的方法
Jan 24 PHP
php实现字符串首字母大写和单词首字母大写的方法
Mar 14 PHP
jquery+php实现导出datatables插件数据到excel的方法
Jul 06 PHP
php连接oracle数据库的方法(测试成功)
May 26 PHP
php简单实现多维数组排序的方法
Sep 30 PHP
php curl中gzip的压缩性能测试实例分析
Nov 08 PHP
PHP面向对象类型约束用法分析
Jun 12 PHP
laravel 实现上传图片到本地和前台访问示例
Oct 21 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
如何跨站抓取别的站点的页面的补充
2006/10/09 PHP
九个你必须知道而且又很好用的php函数和特点
2013/08/08 PHP
总结的一些PHP开发中的tips(必看篇)
2017/03/24 PHP
jQuery 源码分析笔记(6) jQuery.data
2011/06/08 Javascript
javascript检测对象中是否存在某个属性判断方法小结
2013/05/19 Javascript
求数组最大最小值方法适用于任何数组
2013/08/16 Javascript
JavaScript调用客户端的可执行文件(示例代码)
2013/11/28 Javascript
jquery xMarquee实现文字水平无缝滚动效果
2014/04/29 Javascript
根据当前时间在jsp页面上显示上午或下午
2014/08/18 Javascript
延时加载JavaScript代码提高速度
2015/12/27 Javascript
JS中script标签defer和async属性的区别详解
2016/08/12 Javascript
Angular 2父子组件数据传递之@Input和@Output详解 (上)
2017/07/05 Javascript
Angularjs实现下拉框联动的示例代码
2017/08/22 Javascript
vue中eventbus被多次触发以及踩过的坑
2017/12/02 Javascript
实例解析ES6 Proxy使用场景介绍
2018/01/08 Javascript
nodejs连接mysql数据库及基本知识点详解
2018/03/20 NodeJs
vue-cli随机生成port源码的方法
2019/09/02 Javascript
three.js着色器材质的内置变量示例详解
2020/08/16 Javascript
JavaScript如何操作css
2020/10/24 Javascript
[01:19:46]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
在Python中操作字典之setdefault()方法的使用
2015/05/21 Python
Python pass详细介绍及实例代码
2016/11/24 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
2017/02/14 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
2017/11/14 Python
Python2.7基于笛卡尔积算法实现N个数组的排列组合运算示例
2017/11/23 Python
python使用pdfminer解析pdf文件的方法示例
2018/12/20 Python
基于Python实现迪杰斯特拉和弗洛伊德算法
2020/05/27 Python
Pytorch Tensor基本数学运算详解
2019/12/30 Python
python处理RSTP视频流过程解析
2020/01/11 Python
Css3实现无缝滚动防抖
2020/09/14 HTML / CSS
canvas画布实现手写签名效果的示例代码
2019/04/23 HTML / CSS
Notino法国:购买香水和化妆品
2019/04/15 全球购物
高中毕业自我鉴定
2013/12/13 职场文书
酒店工程部的岗位职责汇总大全
2019/10/23 职场文书
对PyTorch中inplace字段的全面理解
2021/05/22 Python
MySql分区类型及创建分区的方法
2022/04/13 MySQL