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 相关文章推荐
PHP下操作Linux消息队列完成进程间通信的方法
Jul 24 PHP
php session劫持和防范的方法
Nov 12 PHP
qq登录,新浪微博登录接口申请过程中遇到的问题
Jul 22 PHP
php数组索引的Key加引号和不加引号的区别
Aug 19 PHP
javascript+php实现根据用户时区显示当地时间的方法
Mar 11 PHP
PHP缓冲区用法总结
Feb 14 PHP
Zend Studio使用技巧两则
Apr 01 PHP
PHP is_array() 检测变量是否是数组的实现方法
Jun 13 PHP
PHP 等比例缩放图片详解及实例代码
Sep 18 PHP
Thinkphp5行为使用方法汇总
Dec 21 PHP
php的命名空间与自动加载实现方法
Aug 25 PHP
php中钩子(hook)的原理与简单应用demo示例
Sep 03 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
用PHP和ACCESS写聊天室(六)
2006/10/09 PHP
php面向对象全攻略 (九)访问类型
2009/09/30 PHP
php5.3 注意事项说明
2013/07/01 PHP
php简单复制文件的方法
2016/05/09 PHP
一个JS翻页效果
2007/07/23 Javascript
JavaScript插入动态样式实现代码
2012/02/22 Javascript
JavaScript高级程序设计 阅读笔记(四) ECMAScript中的类型转换
2012/02/27 Javascript
js简易namespace管理器 实例代码
2013/06/21 Javascript
轻松创建nodejs服务器(6):作出响应
2014/12/18 NodeJs
JS实现的N多简单无缝滚动代码(包含图文效果)
2015/11/06 Javascript
Nodejs初级阶段之express
2015/11/23 NodeJs
基于jQuery实现淡入淡出效果轮播图
2020/07/31 Javascript
JavaScript 函数模式详解及示例
2016/09/07 Javascript
BootStrap网页中代码显示用法详解
2016/10/21 Javascript
Sortable.js拖拽排序使用方法解析
2016/11/04 Javascript
JS解决position:sticky的兼容性问题的方法
2017/10/17 Javascript
利用Decorator如何控制Koa路由详解
2018/06/26 Javascript
mpvue+vuex搭建小程序详细教程(完整步骤)
2018/09/30 Javascript
VUE+elementui面包屑实现动态路由详解
2019/11/04 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
如何使用vue slot创建一个模态框的实例代码
2020/05/24 Javascript
python使用multiprocessing模块实现带回调函数的异步调用方法
2015/04/18 Python
Python中处理字符串之islower()方法的使用简介
2015/05/19 Python
python中文编码与json中文输出问题详解
2018/08/24 Python
用Python实现读写锁的示例代码
2018/11/05 Python
使用Django连接Mysql数据库步骤
2019/01/15 Python
Django如何使用redis作为缓存
2020/05/21 Python
Python的collections模块真的很好用
2021/03/01 Python
MSC邮轮官方网站:加勒比海、地中海和世界各地的假期
2018/08/27 全球购物
彪马加拿大官网:PUMA加拿大
2018/10/04 全球购物
职位说明书范文
2014/05/07 职场文书
交通运输局四风问题对照检查材料思想汇报
2014/10/09 职场文书
幼儿园教师求职信
2015/03/20 职场文书
创业计划书之珠宝饰品
2019/08/26 职场文书
配置Kubernetes外网访问集群
2022/03/31 Servers
使用pd.merge表连接出现多余行的问题解决
2022/06/16 Python