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 相关文章推荐
php 代码优化的42条建议 推荐
Sep 25 PHP
php中显示数组与对象的实现代码
Apr 18 PHP
利用Ffmpeg获得flv视频缩略图和视频时间的代码
Sep 15 PHP
Uncaught exception com_exception with message Failed to create COM object
Jan 11 PHP
在PHP中设置、使用、删除Cookie的解决方法
May 06 PHP
基于php在各种web服务器的运行模式详解
Jun 03 PHP
分享一段php获取linux服务器状态的代码
May 27 PHP
在php和MySql中计算时间差的方法详解
Mar 27 PHP
Laravel 5 框架入门(一)
Apr 09 PHP
Yii2分页的使用及其扩展方法详解
May 23 PHP
PHP多进程之pcntl_fork的实例详解
Oct 15 PHP
thinkPHP框架整合tcpdf插件操作示例
Aug 07 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
用PHP代替JS玩转DOM的思路及示例代码
2014/06/15 PHP
PHP数组操作――获取数组最后一个值的方法
2015/04/14 PHP
使用laravel的migrate创建数据表的方法
2019/09/30 PHP
JavaScript 学习笔记(十四) 正则表达式
2010/01/22 Javascript
javascript中数组的冒泡排序使用示例
2013/12/18 Javascript
在JavaScript中如何解决用execCommand(
2015/10/19 Javascript
jQuery实时显示鼠标指针位置和键盘ASCII码
2016/03/28 Javascript
jquery获取复选框checkbox的值的简单实现方法
2016/05/26 Javascript
Jquery获取第一个子元素简单实例
2016/06/02 Javascript
微信小程序 wxapp地图 map详解
2016/10/31 Javascript
jquery 多个radio的click事件实例
2016/12/03 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
Javascript 详解封装from表单数据为json串进行ajax提交
2017/03/29 Javascript
Javascript(es2016) import和require用法和区别详解
2017/08/11 Javascript
Array数组对象中的forEach、map、filter及reduce详析
2018/08/02 Javascript
javascript对HTML字符转义与反转义
2018/12/13 Javascript
python装饰器使用方法实例
2013/11/21 Python
Python中的anydbm模版和shelve模版使用指南
2015/07/09 Python
详解Python的Django框架中的模版继承
2015/07/16 Python
为什么你还不懂得怎么使用Python协程
2019/05/13 Python
python 成功引入包但无法正常调用的解决
2020/03/09 Python
基于Keras中Conv1D和Conv2D的区别说明
2020/06/19 Python
PyCharm 2020.2 安装详细教程
2020/09/25 Python
Python识别处理照片中的条形码
2020/11/16 Python
HTML如何让IMG自动适应DIV容器大小的实现方法
2020/02/25 HTML / CSS
巴西最大的体育用品商城:Netshoes巴西
2016/11/29 全球购物
澳大利亚新奇小玩意网站:Yellow Octopus
2017/12/28 全球购物
大学生求职信
2014/06/17 职场文书
亚运会口号
2014/06/20 职场文书
中国文明网向国旗敬礼寄语大全
2014/09/27 职场文书
客户答谢会致辞
2015/01/20 职场文书
大学生逃课检讨书
2015/05/04 职场文书
Python爬虫之爬取最新更新的小说网站
2021/05/06 Python
java设计模式--七大原则详解
2021/07/21 Java/Android
JavaScript中MutationObServer监听DOM元素详情
2021/11/27 Javascript
使用Ajax实现进度条的绘制
2022/04/07 Javascript