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


Posted in PHP onJune 23, 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
PHP中读写文件实现代码
Oct 20 PHP
zend framework配置操作数据库实例分析
Dec 06 PHP
PHP之APC缓存详细介绍 apc模块安装
Jan 13 PHP
Yii学习总结之数据访问对象 (DAO)
Feb 22 PHP
PHP日期函数date格式化UNIX时间的方法
Mar 19 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
Feb 24 PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
Oct 18 PHP
ThinkPHP框架整合微信支付之刷卡模式图文详解
Apr 10 PHP
PHP实现微信公众号验证Token的示例代码
Dec 16 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 PHP
php模拟实现斗地主发牌
Apr 22 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
Jun 23 #PHP
ThinkPHP实现事务回滚示例代码
Jun 23 #PHP
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
Jun 23 #PHP
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
Jun 23 #PHP
ThinkPHP学习笔记(一)ThinkPHP部署
Jun 22 #PHP
ThinkPHP的URL重写问题
Jun 22 #PHP
分享一个php 的异常处理程序
Jun 22 #PHP
You might like
PHP5中Cookie与 Session使用详解
2013/04/30 PHP
浅析php变量修饰符static的使用
2013/06/28 PHP
PHP实现的简单缓存类
2015/07/29 PHP
PHP laravel中的多对多关系实例详解
2017/06/07 PHP
Nigma vs Liquid BO3 第一场2.13
2021/03/10 DOTA
CL vs ForZe BO5 第四场 2.13
2021/03/10 DOTA
二级域名或跨域共享Cookies的实现方法
2008/08/07 Javascript
jQuery.query.js 取参数的两点问题分析
2012/08/06 Javascript
js设置function参数默认值(适合没有传参情况)
2014/02/24 Javascript
select多选 multiple的使用示例
2014/06/16 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
2015/06/10 Javascript
根据user-agent判断蜘蛛代码黑帽跳转代码(js版与php版本)
2015/09/14 Javascript
React Native如何消除启动时白屏的方法
2017/08/08 Javascript
Vue中使用的EventBus有生命周期
2018/07/12 Javascript
详解mpvue小程序中怎么引入iconfont字体图标
2018/10/01 Javascript
vue中slot(插槽)的介绍与使用
2018/11/12 Javascript
vue中的mvvm模式讲解
2019/01/31 Javascript
原生js实现日期选择插件
2020/05/21 Javascript
解决Vue中的生命周期beforeDestory不触发的问题
2020/07/21 Javascript
[02:26]DOTA2英雄米拉娜基础教程
2013/11/25 DOTA
[06:20]2015国际邀请赛第三日top10
2015/08/08 DOTA
[03:41]DOTA2上海特锦赛小组赛第三日recap精彩回顾
2016/02/28 DOTA
python回调函数的使用方法
2014/01/23 Python
Python实现检测服务器是否可以ping通的2种方法
2015/01/01 Python
PyQt4编程之让状态栏显示信息的方法
2019/06/18 Python
基于Python实现剪切板实时监控方法解析
2019/09/11 Python
python神经网络编程实现手写数字识别
2020/05/27 Python
Pycharm 设置默认解释器路径和编码格式的操作
2021/02/05 Python
Python爬取网站图片并保存的实现示例
2021/02/26 Python
优质的学校老师推荐信
2013/10/28 职场文书
管理失职检讨书
2014/02/12 职场文书
婚礼秀策划方案
2014/05/19 职场文书
2015年教师节活动总结
2015/03/20 职场文书
2016年教师节特级教师获奖感言
2015/12/09 职场文书
教学反思怎么写
2016/02/24 职场文书
MySQL事务的ACID特性以及并发问题方案
2022/07/15 MySQL