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实现图象锐化代码
Jun 14 PHP
php include的妙用,实现路径加密
Jul 29 PHP
PHP中foreach循环中使用引用要注意的地方
Jan 02 PHP
php数组的概述及分类与声明代码演示
Feb 26 PHP
ThinkPHP实现批量删除数据的代码实例
Jul 02 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
Aug 21 PHP
php实现比较两个文件夹异同的方法
Jun 18 PHP
php+html5实现无刷新图片上传教程
Jan 22 PHP
php中遍历二维数组并以表格的形式输出的方法
Jan 03 PHP
详解关于php的xdebug配置(编辑器vscode)
Jan 29 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
Jun 03 PHP
ThinkPHP 5 AJAX跨域请求头设置实现过程解析
Oct 28 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 Smarty 字符比较代码
2011/02/27 PHP
php 计划任务 检测用户连接状态
2012/03/29 PHP
destoon设置自定义搜索的方法
2014/06/21 PHP
php5.4传引用时报错问题分析
2016/01/22 PHP
php版微信返回用户text输入的方法
2016/11/14 PHP
jQuery实现类似滑动门切换效果的层切换
2013/09/23 Javascript
JsRender for index循环索引用法详解
2014/10/31 Javascript
jQuery中extend()和fn.extend()方法详解
2015/06/03 Javascript
jQuery插件pagewalkthrough实现引导页效果
2015/07/05 Javascript
JavaScript判断表单中多选框checkbox选中个数的方法
2015/08/17 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
2016/01/08 Javascript
浅析vue数据绑定
2017/01/17 Javascript
js实现tab切换效果
2017/02/16 Javascript
Angular4学习笔记之准备和环境搭建项目
2017/08/01 Javascript
动态加载、移除js/css文件的示例代码
2018/03/20 Javascript
JavaScript设计模式之观察者模式实例详解
2019/01/16 Javascript
layui之数据表格--与后台交互获取数据的方法
2019/09/29 Javascript
详解vue路由
2020/08/05 Javascript
[13:55]Newbee vs Team Spirit
2018/06/07 DOTA
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
Python中的取模运算方法
2018/11/10 Python
pycharm 取消默认的右击运行unittest的方法
2018/11/29 Python
OpenCV-Python 摄像头实时检测人脸代码实例
2019/04/30 Python
在python tkinter中Canvas实现进度条显示的方法
2019/06/14 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
2019/06/17 Python
django自带serializers序列化返回指定字段的方法
2019/08/21 Python
Python 调用C++封装的进一步探索交流
2021/03/04 Python
美国著名手表网站:Timepiece
2017/11/15 全球购物
Puccini乌克兰:购买行李箱、女士手袋网上商店
2020/08/06 全球购物
安踏广告词改编版
2014/03/21 职场文书
2014银行领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
初中成绩单评语
2014/12/29 职场文书
新教师个人工作总结
2015/02/06 职场文书
焦裕禄观后感
2015/06/03 职场文书
庆七一活动简报
2015/07/20 职场文书
MongoDB支持的数据类型
2022/04/11 MongoDB