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加密解密的代码
Oct 09 PHP
php文件上传表单摘自drupal的代码
Feb 15 PHP
PHP防止post重复提交数据的简单例子
Jun 07 PHP
Laravel 4 初级教程之安装及入门
Oct 30 PHP
完美实现wordpress禁止文章修订和自动保存的方法
Nov 03 PHP
php 使用file_get_contents读取大文件的方法
Nov 13 PHP
利用PHP脚本在Linux下用md5函数加密字符串的方法
Jun 29 PHP
thinkPHP删除前弹出确认框的简单实现方法
May 16 PHP
详解PHP实现定时任务的五种方法
Jul 25 PHP
PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
Jun 21 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
Dec 26 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
Apr 14 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-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
2011/08/15 PHP
解析PHP将对象转换成数组的方法(兼容多维数组类型)
2013/06/21 PHP
PHP+FastCGI+Nginx配置PHP运行环境
2014/08/07 PHP
浅谈php函数serialize()与unserialize()的使用方法
2014/08/19 PHP
JavaScript高级程序设计 事件学习笔记
2011/09/10 Javascript
js获取当前日期时间及其它日期操作汇总
2016/03/08 Javascript
纯jQuery实现前端分页功能
2017/03/23 jQuery
使用Dropzone.js上传的示例代码
2017/10/10 Javascript
JS控制鼠标拒绝点击某一按钮的实例
2017/12/29 Javascript
基于three.js编写的一个项目类示例代码
2018/01/05 Javascript
Angular5中调用第三方js插件的方法
2018/02/26 Javascript
vue-cli 引入、配置axios的方法
2018/05/08 Javascript
微信小程序调用摄像头隐藏式拍照功能
2018/08/22 Javascript
jQuery实现的卷帘门滑入滑出效果【案例】
2019/02/18 jQuery
详解js获取video任意时间的画面截图
2019/04/17 Javascript
详解es6新增数组方法简便了哪些操作
2019/05/09 Javascript
vue-cli3使用mock数据的方法分析
2020/03/16 Javascript
vue项目中自定义video视频控制条的实现代码
2020/04/26 Javascript
详解elementUI中input框无法输入的问题
2020/04/27 Javascript
[02:04]2016国际邀请赛中国区预选赛VG.R晋级之路
2016/07/01 DOTA
python实现根据窗口标题调用窗口的方法
2015/03/13 Python
Python+django实现文件下载
2016/01/17 Python
关于Keras Dense层整理
2020/05/21 Python
Python实现LR1文法的完整实例代码
2020/10/25 Python
python+openCV对视频进行截取的实现
2020/11/27 Python
美国校服网上商店:French Toast
2019/10/08 全球购物
牛津在线药房:Oxford Online Pharmacy
2020/11/16 全球购物
如何现实servlet的单线程模式
2014/08/05 面试题
Ruby如何创建一个线程
2013/03/10 面试题
业务员的岗位职责
2014/03/15 职场文书
马智宇婚礼主持词
2014/03/22 职场文书
就业协议书样本
2014/08/20 职场文书
领导干部保密承诺书
2014/08/30 职场文书
党员群众路线个人整改措施思想汇报
2014/10/12 职场文书
大学生暑期社会实践的个人总结!
2019/07/17 职场文书
CSS 使用 resize 实现图片拖拽切换预览功能(强大功能)
2021/08/23 HTML / CSS