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小技巧搜集,每个PHPer都来露一手
Jan 02 PHP
PHP 截取字符串 分别适合GB2312和UTF8编码情况
Feb 12 PHP
一个典型的PHP分页实例代码分享
Jul 28 PHP
PHP中的Memcache详解
Apr 05 PHP
ThinkPHP模板自定义标签使用方法
Jun 26 PHP
PHP使用redis实现统计缓存mysql压力的方法
Nov 14 PHP
大家都应该掌握的PHP关联数组使用技巧
Dec 25 PHP
给WordPress的编辑后台添加提示框的代码实例分享
Dec 25 PHP
php metaphone()函数及php localeconv() 函数实例解析
May 15 PHP
php验证身份证号码正确性的函数
Jul 20 PHP
php基于单例模式封装mysql类完整实例
Oct 18 PHP
Laravel使用原生sql语句并调用的方法
Oct 09 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
常用星际术语索引(新手指南)
2020/03/04 星际争霸
打造超酷的PHP数据饼图效果实现代码
2011/11/23 PHP
PHP的password_hash()使用实例
2014/03/17 PHP
php正则提取html图片(img)src地址与任意属性的方法
2017/02/08 PHP
PHP回调函数与匿名函数实例详解
2017/08/16 PHP
PHP使用SOAP调用API操作示例
2018/12/25 PHP
网络图片延迟加载实现代码 超越jquery控件
2010/03/27 Javascript
非常好用的JsonToString 方法 简单实例
2013/07/18 Javascript
零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门
2014/12/20 Javascript
跟我学习javascript的闭包
2015/11/16 Javascript
jQuery表单验证简单示例
2016/10/17 Javascript
Angularjs cookie 操作实例详解
2017/09/27 Javascript
基于vue打包后字体和图片资源失效问题的解决方法
2018/03/06 Javascript
JS构造一个html文本内容成文件流形式发送到后台
2018/07/31 Javascript
深入浅析Vue.js 中的 v-for 列表渲染指令
2018/11/19 Javascript
vue-cli3+ts+webpack实现多入口多出口功能
2019/05/30 Javascript
教你30秒发布一个TypeScript包到NPM的方法步骤
2019/07/22 Javascript
vuex 实现getter值赋值给vue组件里的data示例
2019/11/05 Javascript
Webpack设置环境变量的一些误区详解
2019/12/19 Javascript
jQuery实现中奖播报功能(让文本滚动起来) 简单设置数值即可
2020/03/20 jQuery
Vue 3自定义指令开发的相关总结
2021/01/29 Vue.js
Python实现SMTP发送邮件详细教程
2021/03/02 Python
python实现批量监控网站
2016/09/09 Python
spark dataframe 将一列展开,把该列所有值都变成新列的方法
2019/01/29 Python
使用pandas把某一列的字符值转换为数字的实例
2019/01/29 Python
Python关于__name__属性的含义和作用详解
2020/02/19 Python
魔幻般冒泡背景的CSS3按钮动画
2016/02/27 HTML / CSS
html5仿支付宝密码框的实现代码
2017/09/06 HTML / CSS
基于HTML5的WebGL经典3D虚拟机房漫游动画
2017/11/15 HTML / CSS
HTML5 解决苹果手机不能自动播放音乐问题
2017/12/27 HTML / CSS
竞选班干部的演讲稿
2014/04/24 职场文书
光棍节联谊晚会活动策划书
2014/10/10 职场文书
2014年企业团支部工作总结
2014/12/10 职场文书
行政助理岗位职责范本
2015/04/11 职场文书
幼儿园中班教学反思
2016/03/03 职场文书
用Python将库打包发布到pypi
2021/04/13 Python