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中使用XML
Oct 09 PHP
php生成SessionID和图片校验码的思路和实现代码
Mar 10 PHP
PHP 字符截取 解决中文的截取问题,不用mb系列
Sep 29 PHP
PHP正则的Unknown Modifier错误解决方法
Mar 02 PHP
解析smarty模板中类似for的功能实现
Jun 18 PHP
PHP仿博客园 个人博客(2) 数据库增添改删
Jul 05 PHP
php 生成短网址原理及代码
Jan 23 PHP
php中的curl_multi系列函数使用例子
Jul 29 PHP
织梦sitemap地图实时推送给百度的教程
Aug 03 PHP
LAMP环境使用Composer安装Laravel的方法
Mar 25 PHP
什么是PHP文件?如何打开PHP文件?
Jun 27 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
Apr 07 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
做个自己站内搜索引擎
2006/10/09 PHP
PHP生成静态页面详解
2006/12/05 PHP
php过滤html标记属性类用法实例
2014/09/23 PHP
javascript 获取select下拉列表值的代码
2009/09/07 Javascript
javascript 二维数组的实现与应用
2010/03/16 Javascript
我的javascript 函数链之演变
2011/04/07 Javascript
利用javascript实现全部删或清空所选的操作
2014/05/27 Javascript
js用Date对象的setDate()函数对日期进行加减操作
2014/09/18 Javascript
jquery实现适用于门户站的导航下拉菜单效果代码
2015/08/24 Javascript
跟我学习javascript的严格模式
2015/11/16 Javascript
JS实现简单的二维矩阵乘积运算
2016/01/26 Javascript
js带闹铃功能的倒计时代码
2016/09/29 Javascript
javascript设置文本框光标的方法实例小结
2016/11/04 Javascript
详解Js模板引擎(TrimPath)
2016/11/22 Javascript
Javascript中call,apply,bind方法的详解与总结
2016/12/12 Javascript
基于vue.js实现侧边菜单栏
2017/03/20 Javascript
vue2.0 computed 计算list循环后累加值的实例
2018/03/07 Javascript
Python中用于检查英文字母大写的isupper()方法
2015/05/19 Python
使用NumPy和pandas对CSV文件进行写操作的实例
2018/06/14 Python
获取Pytorch中间某一层权重或者特征的例子
2019/08/17 Python
pycharm 实现本地写代码,服务器运行的操作
2020/06/08 Python
协程Python 中实现多任务耗资源最小的方式
2020/10/19 Python
使用python-cv2实现Harr+Adaboost人脸识别的示例
2020/10/27 Python
详解Python模块化编程与装饰器
2021/01/16 Python
Python创建自己的加密货币的示例
2021/03/01 Python
西班牙香水和化妆品购物网站:Arenal Perfumerías
2019/03/01 全球购物
英国伦敦的睡衣品牌:Asceno
2019/10/06 全球购物
EJB timer的种类
2014/10/28 面试题
班组长岗位职责范本
2014/01/05 职场文书
商业活动邀请函
2014/02/04 职场文书
工厂总经理岗位职责
2014/02/07 职场文书
敬老院院长事迹材料
2014/05/21 职场文书
应届大学生自荐书
2014/06/17 职场文书
标会主持词应该怎么写?
2019/08/15 职场文书
浅谈MySQL user权限表
2021/06/18 MySQL
python中使用redis用法详解
2022/12/24 Redis