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根据传入参数合并多个JS和CSS文件的简单实现
Jun 13 PHP
PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
Aug 23 PHP
php cookie名使用点号(句号)会被转换
Oct 23 PHP
smarty简单分页的实现方法
Oct 27 PHP
Laravel 中获取上一篇和下一篇数据
Jul 27 PHP
解决yii2左侧菜单子级无法高亮问题的方法
May 08 PHP
thinkPHP模板算术运算相关函数用法分析
Jul 12 PHP
PHP递归获取目录内所有文件的实现方法
Nov 01 PHP
PHP实现防盗链的方法分析
Jul 25 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
Nov 16 PHP
关于laravel 子查询 & join的使用
Oct 16 PHP
PHP常用函数之base64图片上传功能详解
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
不错的PHP学习之php4与php5之间会穿梭一点点感悟
2007/05/03 PHP
PHP根据图片色界在不同位置加水印的方法
2015/07/01 PHP
javascript 强制刷新页面的实现代码
2009/12/13 Javascript
javascript 学习笔记(六)浏览器类型及版本信息检测代码
2011/04/08 Javascript
JavaScript打开word文档的实现代码(c#)
2012/04/16 Javascript
基于jQuery实现最基本的淡入淡出效果实例
2015/02/02 Javascript
js实现异步循环实现代码
2016/02/16 Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
2016/07/07 Javascript
JavaScript 闭包详细介绍
2016/09/28 Javascript
JavaScript实现公历转农历功能示例
2017/02/13 Javascript
jQuery实现一个简单的轮播图
2017/02/19 Javascript
Vue.2.0.5实现Class 与 Style 绑定的实例
2017/06/20 Javascript
详解vue父子组件间传值(props)
2017/06/29 Javascript
vue 2.0封装model组件的方法
2017/08/03 Javascript
this在vue和小程序中的使用详解
2019/01/28 Javascript
koa+jwt实现token验证与刷新功能
2019/05/30 Javascript
Vue自动构建发布脚本的方法示例
2020/07/24 Javascript
JS轮播图的实现方法
2020/08/24 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
[50:02]完美世界DOTA2联赛循环赛 Magma vs IO BO2第一场 11.01
2020/11/02 DOTA
python判断端口是否打开的实现代码
2013/02/10 Python
Python获取当前页面内所有链接的四种方法对比分析
2017/08/19 Python
详解PyTorch批训练及优化器比较
2018/04/28 Python
python中for循环输出列表索引与对应的值方法
2018/11/07 Python
超简单的Python HTTP服务
2019/07/22 Python
Django app配置多个数据库代码实例
2019/12/17 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
2020/06/05 Python
Python使用文件操作实现一个XX信息管理系统的示例
2020/07/02 Python
Python实现播放和录制声音的功能
2020/08/12 Python
浅谈Python __init__.py的作用
2020/10/28 Python
纯css3实现效果超级炫的checkbox复选框和radio单选框
2014/09/01 HTML / CSS
销售主管岗位职责范本
2014/02/14 职场文书
人与自然观后感
2015/06/16 职场文书
CSS作用域(样式分割)的使用汇总
2021/11/07 HTML / CSS
《堡垒之夜》联动《刺客信条》 4月7日正式上线
2022/04/06 其他游戏
win10蓝屏0xc0000001安全模式进不了怎么办?win10出现0xc0000001的解决方法
2022/08/05 数码科技