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 相关文章推荐
windows xp下安装pear
Dec 02 PHP
比较简单实用的PHP无限分类源码分享(思路不错)
Oct 13 PHP
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
Jan 12 PHP
深入php数据采集的详解
Jun 02 PHP
浅谈php函数serialize()与unserialize()的使用方法
Aug 19 PHP
php生成圆角图片的方法
Apr 07 PHP
PHP实现的增强性mhash函数
May 27 PHP
常用的php图片处理类(水印、等比缩放、固定高宽)分享
Jun 19 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
May 19 PHP
在Laravel框架里实现发送邮件实例(邮箱验证)
May 20 PHP
Yii2实现log输出到file及database的方法
Nov 12 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 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
?生?D片??C字串
2006/12/06 PHP
php实现将HTML页面转换成word并且保存的方法
2016/10/14 PHP
PHP redis实现超迷你全文检索
2017/03/04 PHP
Yii2.0建立公共方法简单示例
2019/01/29 PHP
JavaScript效率调优经验
2009/06/04 Javascript
jQuery EasyUI API 中文文档 - Tree树使用介绍
2011/11/19 Javascript
解析jquery中的ajax缓存问题
2013/12/19 Javascript
setinterval()与clearInterval()JS函数的调用方法
2015/01/21 Javascript
Javascript动态创建div的方法
2015/02/09 Javascript
js获取Html元素的实际宽度高度的方法
2016/05/19 Javascript
jQuery 获取页面li数组并删除不在数组中的key
2016/08/02 Javascript
JavaScript中的call和apply的用途以及区别
2017/01/11 Javascript
js实现增加数字显示的环形进度条效果
2017/02/05 Javascript
require.js与bootstrap结合实现简单的页面登录和页面跳转功能
2017/05/12 Javascript
详解React Native顶|底部导航使用小技巧
2017/09/14 Javascript
Vue formData实现图片上传
2019/08/20 Javascript
JS实现瀑布流效果
2020/03/07 Javascript
微信小程序地图实现展示线路
2020/07/29 Javascript
python 判断自定义对象类型
2009/03/21 Python
python 实现插入排序算法
2012/06/05 Python
python基于itchat实现微信群消息同步机器人
2017/02/27 Python
SVM基本概念及Python实现代码
2017/12/27 Python
python实现回旋矩阵方式(旋转矩阵)
2019/12/04 Python
Python lxml模块的基本使用方法分析
2019/12/21 Python
Jupyter notebook设置背景主题,字体大小及自动补全代码的操作
2020/04/13 Python
Python json转字典字符方法实例解析
2020/04/13 Python
在Python中实现字典反转案例
2020/12/05 Python
详解利用canvas实现环形进度条的方法
2019/06/12 HTML / CSS
be2台湾单身男女交友:全球网路婚姻介绍的领导品牌
2019/10/11 全球购物
Java的接口和C++的虚类的相同和不同处
2014/03/27 面试题
杭州-飞时达软件有限公司.net笔面试
2012/04/28 面试题
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
2014/09/26 面试题
仓管员岗位职责
2015/02/03 职场文书
2015年反腐倡廉工作总结
2015/05/14 职场文书
2016大一新生军训感言
2015/12/08 职场文书
vue使用wavesurfer.js解决音频可视化播放问题
2022/04/04 Vue.js