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 如何向 MySQL 发送数据
Oct 09 PHP
Admin generator, filters and I18n
Oct 06 PHP
PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)
Apr 02 PHP
PHP三元运算的2种写法代码实例
May 12 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十二)
Jun 25 PHP
php.ini save_handler 修改不生效的解决办法
Jul 22 PHP
微信access_token的获取开发示例
Apr 16 PHP
PHP+Javascript实现在线拍照功能实例
Jul 18 PHP
php给图片加文字水印
Jul 31 PHP
标准版Eclipse搭建PHP环境的详细步骤
Nov 18 PHP
php mysqli查询语句返回值类型实例分析
Jun 29 PHP
CakePHP框架Model关联对象用法分析
Aug 04 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新建文件自动编号的思路与实现
2011/06/27 PHP
部署PHP项目应该注意的几点事项分享
2013/12/20 PHP
php实现根据url自动生成缩略图的方法
2014/09/23 PHP
php利用cookie实现自动登录的方法
2014/12/10 PHP
php内嵌函数用法实例
2015/03/20 PHP
PHP中使用hidef扩展代替define提高性能
2015/04/09 PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
2015/07/06 PHP
Symfony2学习笔记之系统路由详解
2016/03/17 PHP
如何使用PHP给图片加水印
2016/10/12 PHP
PHP利用Socket获取网站的SSL证书与公钥
2017/06/18 PHP
解析js原生方法创建表格效率测试
2013/07/08 Javascript
jQuery内容过滤选择器用法分析
2015/02/10 Javascript
jQuery+PHP实现动态数字展示特效
2015/03/14 Javascript
javascript发送短信验证码实现代码
2015/11/12 Javascript
JavaScript中判断数据类型的方法总结
2016/05/24 Javascript
js判断输入字符串是否为空、空格、null的方法总结
2016/06/14 Javascript
AngularJS实现根据不同条件显示不同控件
2017/04/20 Javascript
利用node.js制作命令行工具方法教程(一)
2017/06/22 Javascript
详解Angular2组件之间如何通信
2017/06/22 Javascript
ionic环境配置及问题详解
2017/06/27 Javascript
ajax+node+request爬取网络图片的实例(宅男福利)
2017/08/28 Javascript
JS实现点击循环切换显示内容的方法
2017/10/19 Javascript
Vue修改项目启动端口号方法
2019/11/07 Javascript
vue项目实现图片上传功能
2019/12/23 Javascript
[03:04]DOTA2英雄基础教程 影魔
2013/12/11 DOTA
python根据经纬度计算距离示例
2014/02/16 Python
Python爬虫包BeautifulSoup异常处理(二)
2018/06/17 Python
python 判断矩阵中每行非零个数的方法
2019/01/26 Python
解决pymysql cursor.fetchall() 获取不到数据的问题
2020/05/15 Python
python编写softmax函数、交叉熵函数实例
2020/06/11 Python
css3实现针线缝合效果(图解步骤)
2013/02/04 HTML / CSS
上级检查欢迎词
2014/01/18 职场文书
甜美蛋糕店创业计划书
2014/01/30 职场文书
保险公司年会主持词
2014/03/22 职场文书
办公室岗位职责范本
2015/04/11 职场文书
2015年店长个人工作总结
2015/10/23 职场文书