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应用提速面面观
Oct 09 PHP
织梦模板标记简介
Mar 11 PHP
一些需要禁用的PHP危险函数(disable_functions)
Feb 23 PHP
PHP文件上传主要代码讲解
Sep 30 PHP
Laravel中使用阿里云OSS Composer包分享
Feb 10 PHP
PHP中判断文件存在使用is_file还是file_exists?
Apr 03 PHP
php中memcache 基本操作实例
May 17 PHP
分享10段PHP常用代码
Nov 11 PHP
Yii 2.0如何使用页面缓存方法示例
May 23 PHP
PHP实现的分页类定义与用法示例
Jul 05 PHP
Laravel6.2中用于用户登录的新密码确认流程详解
Oct 16 PHP
thinkphp5 路由分发原理
Mar 18 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中读取照片exif信息的方法
2014/08/20 PHP
php计算一个文件大小的方法
2015/03/30 PHP
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
2015/05/12 PHP
PHP屏蔽关键字实现方法
2016/11/17 PHP
浅析PHP7 的垃圾回收机制
2019/09/06 PHP
IE和Firefox的Javascript兼容性总结[推荐收藏]
2011/10/19 Javascript
js判断屏幕分辨率的代码
2013/07/16 Javascript
JS如何将UTC格式时间转本地格式
2013/09/04 Javascript
Javascript与jQuery方法的隐藏与显示
2015/01/19 Javascript
JavaScript实现函数返回多个值的方法
2015/06/09 Javascript
jQuery实现鼠标点击弹出渐变层的方法
2015/07/09 Javascript
原生js实现图片层叠轮播切换效果
2016/02/02 Javascript
JavaScript判断数字是否为质数的方法汇总
2016/06/02 Javascript
Bootstrap 3.x打印预览背景色与文字显示异常的解决
2016/11/06 Javascript
基于DOM节点删除之empty和remove的区别(详解)
2017/09/11 Javascript
angular4实现tab栏切换的方法示例
2017/10/21 Javascript
JS中移除非数字最多保留一位小数
2018/05/09 Javascript
解决使用layui的时候form表单中的select等不能渲染的问题
2019/09/18 Javascript
微信小程序 wx.getUserInfo引导用户授权问题实例分析
2020/03/09 Javascript
JS addEventListener()和attachEvent()方法实现注册事件
2021/01/11 Javascript
Python如何快速实现分布式任务
2017/07/06 Python
解决python3中解压zip文件是文件名乱码的问题
2018/03/22 Python
Numpy掩码式数组详解
2018/04/17 Python
pandas的唯一值、值计数以及成员资格的示例
2018/07/25 Python
利用CSS3动画实现圆圈由小变大向外扩散的效果实例
2018/09/10 HTML / CSS
详解html5 canvas 微信海报分享(个人爬坑)
2018/01/12 HTML / CSS
智能钱包:Ekster
2019/11/21 全球购物
英语教学随笔感言
2014/02/20 职场文书
校企合作协议书
2014/04/16 职场文书
经济信息系毕业生自荐信
2014/06/02 职场文书
中学生检讨书范文
2014/11/03 职场文书
2014年审计工作总结
2014/11/17 职场文书
干部考察材料范文
2014/12/24 职场文书
调任通知
2015/04/21 职场文书
化验室安全管理制度
2015/08/06 职场文书
Win10 heic文件怎么打开 ? Win10 heic文件打开教程
2022/04/06 数码科技