ThinkPHP3.1新特性之动态设置自动完成和自动验证示例


Posted in PHP onJune 19, 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 相关文章推荐
基于mysql的bbs设计(三)
Oct 09 PHP
PHP语法速查表
Jan 02 PHP
ASP和PHP都是可以删除自身的
Apr 09 PHP
PHP随机数生成代码与使用实例分析
Apr 08 PHP
php生成mysql的数据字典
Jul 07 PHP
php str_replace替换指定次数的方法详解
May 05 PHP
PHP实现动态添加XML中数据的方法
Mar 30 PHP
CI框架实现创建自定义类库的方法
Dec 25 PHP
PHP常见的几种攻击方式实例小结
Apr 29 PHP
Thinkphp自定义生成缩略图尺寸的方法
Aug 05 PHP
PHP实现常用排序算法的方法
Feb 05 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
Feb 27 PHP
ThinkPHP的Widget扩展实例
Jun 19 #PHP
ThinkPHP3.1的Widget新用法
Jun 19 #PHP
ThinkPHP3.1新特性之命名范围的使用
Jun 19 #PHP
ThinkPHP3.1新特性之Action参数绑定
Jun 19 #PHP
ThinkPHP3.1新特性之多层MVC的支持
Jun 19 #PHP
php定界符
Jun 19 #PHP
php获取网页中图片、DIV内容的简单方法
Jun 19 #PHP
You might like
《一拳超人》埼玉一拳下去,他们存在了800年毫无意义!
2020/03/02 日漫
PHP Class&Object -- PHP 自排序二叉树的深入解析
2013/06/25 PHP
php控制文件下载速度的方法
2015/03/24 PHP
php生成zip文件类实例
2015/04/07 PHP
php类的自动加载操作实例详解
2016/09/28 PHP
PHPstorm激活码2020年5月13日亲测有效
2020/09/17 PHP
jQuery+CSS 实现随滚动条增减的汽水瓶中的液体效果
2011/09/26 Javascript
多个datatable共存造成多个表格的checkbox都被选中
2013/07/11 Javascript
浅谈Javascript Base64 加密解密
2014/12/28 Javascript
Bootstrap3使用typeahead插件实现自动补全功能
2016/07/07 Javascript
仿iframe效果Aajx文件上传实例
2016/11/18 Javascript
JavaScript表单验证的两种实现方法
2017/02/11 Javascript
在javascript中,null>=0 为真,null==0却为假,null的值详解
2017/02/22 Javascript
Vue.js实现多条件筛选、搜索、排序及分页的表格功能
2020/11/24 Javascript
JS全角与半角转化实例(分享)
2017/07/04 Javascript
vue 点击展开显示更多(点击收起部分隐藏)
2019/04/09 Javascript
nodejs log4js 使用详解
2019/05/31 NodeJs
layui table复选框禁止某几条勾选的实例
2019/09/20 Javascript
vue vantUI tab切换时 list组件不触发load事件的问题及解决方法
2020/02/14 Javascript
JS删除数组指定值常用方法详解
2020/06/04 Javascript
vue之封装多个组件调用同一接口的案例
2020/08/11 Javascript
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
Python获取指定文件夹下的文件名的方法
2018/02/06 Python
Django Web开发中django-debug-toolbar的配置以及使用
2018/05/06 Python
使用python实现快速搭建简易的FTP服务器
2018/09/12 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
2019/05/15 Python
Django在Model保存前记录日志实例
2020/05/14 Python
python缩进长度是否统一
2020/08/02 Python
HTML5 Web缓存和运用程序缓存(cookie,session)
2018/01/11 HTML / CSS
Nike墨西哥官网:Nike MX
2020/08/30 全球购物
事业单位鉴定材料
2014/05/25 职场文书
啤酒节策划方案
2014/05/28 职场文书
4S店客服专员岗位职责
2015/04/07 职场文书
pytorch中的numel函数用法说明
2021/05/13 Python
python程序的组织结构详解
2021/12/06 Python
详细介绍python操作RabbitMq
2022/04/12 Python