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 20 PHP
PHP限制页面只能在微信自带浏览器访问的代码
Jan 15 PHP
php中多维数组按指定value排序的实现代码
Aug 19 PHP
ThinkPHP3.2.2的插件控制器功能
Mar 05 PHP
PHP连接MSSQL方法汇总
Feb 05 PHP
PHP 5.6.11 访问SQL Server2008R2的几种情况详解
Aug 08 PHP
PHP简单留言本功能实现代码
Jun 09 PHP
用PHP去掉文件头的Unicode签名(BOM)方法
Jun 22 PHP
PHP API接口必备之输出json格式数据示例代码
Jun 27 PHP
基于Laravel实现的用户动态模块开发
Sep 21 PHP
laravel5.1框架model类查询的实现方法
Oct 08 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
Mar 29 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
Zend Studio去除编辑器的语法警告设置方法
2012/10/24 PHP
使用php显示搜索引擎来的关键词
2014/02/13 PHP
PHP防范SQL注入的具体方法详解(测试通过)
2014/05/09 PHP
thinkPHP交易详情查询功能详解
2016/12/02 PHP
PHP实现的自定义图像居中裁剪函数示例【测试可用】
2017/08/11 PHP
实例分析10个PHP常见安全问题
2019/07/09 PHP
新浪中用来显示flash的函数
2007/04/02 Javascript
javascript 禁用IE工具栏,导航栏等等实现代码
2013/04/01 Javascript
javascript闭包的高级使用方法实例
2013/07/04 Javascript
nodejs npm package.json中文文档
2014/09/04 NodeJs
JavaScript中的console.dir()函数介绍
2014/12/29 Javascript
JS通过ajax动态读取xml文件内容的方法
2015/03/24 Javascript
windows下安装nodejs及框架express
2015/08/07 NodeJs
JS实现简单的二维矩阵乘积运算
2016/01/26 Javascript
layer弹出层中H5播放器全屏出错的解决方法
2017/02/21 Javascript
微信小程序列表渲染功能之列表下拉刷新及上拉加载的实现方法分析
2017/11/27 Javascript
VUE基于NUXT的SSR 服务端渲染
2018/11/30 Javascript
微信小程序分享海报生成的实现方法
2018/12/10 Javascript
Vue程序调试的方法
2019/06/17 Javascript
vue登录页实现使用cookie记住7天密码功能的方法
2021/02/18 Vue.js
python调用机器喇叭发出蜂鸣声(Beep)的方法
2015/03/23 Python
使用python实现省市三级菜单效果
2016/01/20 Python
对Python 2.7 pandas 中的read_excel详解
2018/05/04 Python
Python通用循环的构造方法实例分析
2018/12/19 Python
Python编程在flask中模拟进行Restful的CRUD操作
2018/12/28 Python
利用python修改json文件的value方法
2018/12/31 Python
python 同时运行多个程序的实例
2019/01/07 Python
python游戏地图最短路径求解
2019/01/16 Python
Python 实现将numpy中的nan和inf,nan替换成对应的均值
2020/06/08 Python
Python如何在单元测试中给对象打补丁
2020/08/03 Python
英国在线药房:Chemist.co.uk
2019/03/26 全球购物
萨克斯第五大道英国:Saks Fifth Avenue英国
2019/04/01 全球购物
人力资源经理的岗位职责
2014/03/02 职场文书
创建绿色社区汇报材料
2014/08/22 职场文书
爱心募捐感谢信
2015/01/22 职场文书
创业不要错过,这4种餐饮新模式
2019/07/18 职场文书