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+MSSQL分页的例子
Oct 09 PHP
PHP查询MySQL大量数据的时候内存占用分析
Jul 22 PHP
php获取bing每日壁纸示例分享
Feb 25 PHP
destoon实现调用热门关键字的方法
Jul 15 PHP
yii操作session实例简介
Jul 31 PHP
php使用cookie保存登录用户名的方法
Jan 26 PHP
php similar_text()函数的定义和用法
May 12 PHP
Yii视图操作之自定义分页实现方法
Jul 14 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
Jan 15 PHP
解决laravel中日志权限莫名变成了root的问题
Oct 17 PHP
Laravel框架处理用户的请求操作详解
Dec 20 PHP
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
Apr 01 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下用rmdir实现删除目录的三种方法小结
2008/04/20 PHP
深入Memcache的Session数据的多服务器共享详解
2013/06/13 PHP
美图秀秀web开放平台--PHP流式上传和表单上传示例分享
2014/06/22 PHP
php常用数学函数汇总
2014/11/21 PHP
Laravel 修改默认日志文件名称和位置的例子
2019/10/17 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
php中用unset销毁变量并释放内存
2020/05/10 PHP
JS简单的图片放大缩小的两种方法
2013/11/11 Javascript
javascipt:filter过滤介绍及使用
2014/09/10 Javascript
一个JavaScript函数把URL参数解析成Json对象
2014/09/24 Javascript
JavaScript实现动态添加,删除行的方法实例详解
2015/07/02 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
2015/09/12 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【一】
2016/05/10 Javascript
jQuery EasyUI框架中的Datagrid数据表格组件结构详解
2016/06/09 Javascript
浅谈toLowerCase和toLocaleLowerCase的区别
2016/08/15 Javascript
Bootstrap页面缩小变形的快速解决办法
2017/02/03 Javascript
原生js实现放大镜特效
2017/03/08 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
2017/03/21 Javascript
详解vue前后台数据交互vue-resource文档
2017/07/19 Javascript
JavaScript 基础表单验证示例(纯Js实现)
2017/07/20 Javascript
jQuery EasyUI结合zTree树形结构制作web页面
2017/09/01 jQuery
iview table render集成switch开关的实例
2018/03/14 Javascript
JavaScript链式调用实例浅析
2018/12/19 Javascript
JS实现简单的文字无缝上下滚动功能示例
2019/06/22 Javascript
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
2020/02/06 Javascript
[25:59]Newbee vs TNC 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python实现在线程里运行scrapy的方法
2015/04/07 Python
Python中的FTP通信模块ftplib的用法整理
2016/07/08 Python
详解Python如何获取列表(List)的中位数
2016/08/12 Python
python 拷贝特定后缀名文件,并保留原始目录结构的实例
2018/04/27 Python
django 数据库连接模块解析及简单长连接改造方法
2019/08/29 Python
Python实现在线批量美颜功能过程解析
2020/06/10 Python
matplotlib基础绘图命令之imshow的使用
2020/08/13 Python
CSS3实现简易版的刮刮乐效果
2016/09/27 HTML / CSS
Parfume Klik丹麦:香水网上商店
2018/07/10 全球购物
简单叙述一下MYSQL的优化
2016/05/09 面试题