0

0

thinkphp自动验证有关问题

php中文网

php中文网

发布时间:2016-06-13 10:06:00

|

829人浏览过

|

来源于php中文网

原创

thinkphp自动验证问题
thinkphp 注册时 自动验证所需要的函数验证 放在哪里了?
写好的验证函数要放在哪里 怎么调用它呢?

------解决方案--------------------
官方文档很清楚:


ThinkPHP

5.3.15 自动验证
类型检查只是针对数据库级别的验证,所以系统还内置了数据对象的自动验证功能来完成模型的业务规则验证,而大多数情况下面,数据对象是由表单提交的$_POST数据创建。需要使用系统的自动验证功能,只需要在Model类里面定义$_validate属性,是由多个验证因子组成的数组,支持的验证因子格式: 


PHP代码


array(验证字段,验证规则,错误提示,验证条件,附加规则,验证时间)



验证字段:需要验证的表单字段名称,这个字段不一定是数据库字段,也可以是表单的一些辅助字段,例如确认密码和验证码等等。(必须)

验证规则: 要进行验证的规则,需要结合附加规则(必须)

提示信息: 用于验证失败后的提示信息定义(必须)

验证条件:(可选)


PHP代码


Model::EXISTS_TO_VAILIDATE 或者0 存在字段就验证 (默认)

Model::MUST_TO_VALIDATE 或者1 必须验证

Model::VALUE_TO_VAILIDATE或者2 值不为空的时候验证



附加规则: 配合验证规则使用(可选),包括:

? regex 使用正则进行验证,表示前面定义的验证规则是一个正则表达式(默认)

? function 使用函数验证,前面定义的验证规则是一个函数名

? callback 使用方法验证,前面定义的验证规则是当前Model类的一个方法

? confirm 验证表单中的两个字段是否相同,前面定义的验证规则是一个字段名

? equal 验证是否等于某个值,该值由前面的验证规则定义

? in 验证是否在某个范围内,前面定义的验证规则必须是一个数组

? unique 验证是否唯一,系统会根据字段目前的值查询数据库来判断是否存在相同的值

系统还内置了一些常用正则验证的规则,可以直接使用,包括:require 字段必须、email 邮箱、url URL地址、currency 货币、number 数字,这些验证规则可以直接使用。

验证时间:(可选)


PHP代码


Model:: MODEL_INSERT 或者1新增数据时候验证

Model:: MODEL_UPDATE 或者2编辑数据时候验证

Model:: MODEL_BOTH 或者3 全部情况下验证(默认)



示例: 


PHP代码


protected $_validate = array(

array('verify','require','验证码必须!'), //默认情况下用正则进行验证

array(name,'','帐号名称已经存在!',0,’unique’,1), // 在新增的时候验证name字段是否唯一

array('value',array(1,2,3),'值的范围不正确!',2,’in’), // 当值不为空的时候判断是否在一个范围内

array('repassword','password','确认密码不正确',0,’confirm’), // 验证确认密码是否和密码一致

array('password','checkPwd','密码格式不正确',0,’function’), // 自定义函数验证密码格式

);



当使用系统的create方法创建数据对象的时候会自动进行数据验证操作,代码示例: 


PHP代码


$User = D("User"); // 实例化User对象

if (!$User->create()){

// 如果创建失败 表示验证没有通过 输出错误提示信息

exit($User->getError());

}else{

// 验证通过 可以进行其他数据操作

}



通常来说,每个数据表对应的验证规则是相对固定的,但是有些特殊的情况下面可能会改变验证规则,我们可以动态的改变验证规则来满足不同条件下面的验证:


PHP代码


$User = D("User"); // 实例化User对象

$validate = array(

array('verify','require','验证码必须!'), // 仅仅需要进行验证码的验证

);

$User-> setProperty("_validate",$validate);

$result = $User->create();

if (!$result){

// 如果创建失败 表示验证没有通过 输出错误提示信息

exit($User->getError());

}else{

// 验证通过 可以进行其他数据操作

}

------解决方案--------------------

探讨
这个 我知道呀 就是不知道函数放在哪里 checkPwd函数放在哪,
array('password','checkPwd','密码格式不正确',0,’function’), // 自定义函数验证密码格式

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
c++主流开发框架汇总
c++主流开发框架汇总

本专题整合了c++开发框架推荐,阅读专题下面的文章了解更多详细内容。

26

2026.01.09

c++框架学习教程汇总
c++框架学习教程汇总

本专题整合了c++框架学习教程汇总,阅读专题下面的文章了解更多详细内容。

24

2026.01.09

学python好用的网站推荐
学python好用的网站推荐

本专题整合了python学习教程汇总,阅读专题下面的文章了解更多详细内容。

72

2026.01.09

学python网站汇总
学python网站汇总

本专题整合了学python网站汇总,阅读专题下面的文章了解更多详细内容。

9

2026.01.09

python学习网站
python学习网站

本专题整合了python学习相关推荐汇总,阅读专题下面的文章了解更多详细内容。

10

2026.01.09

俄罗斯手机浏览器地址汇总
俄罗斯手机浏览器地址汇总

汇总俄罗斯Yandex手机浏览器官方网址入口,涵盖国际版与俄语版,适配移动端访问,一键直达搜索、地图、新闻等核心服务。

52

2026.01.09

漫蛙稳定版地址大全
漫蛙稳定版地址大全

漫蛙稳定版地址大全汇总最新可用入口,包含漫蛙manwa漫画防走失官网链接,确保用户随时畅读海量正版漫画资源,建议收藏备用,避免因域名变动无法访问。

183

2026.01.09

php学习网站大全
php学习网站大全

精选多个优质PHP入门学习网站,涵盖教程、实战与文档,适合零基础到进阶开发者,助你高效掌握PHP编程。

12

2026.01.09

php网站搭建教程大全
php网站搭建教程大全

本合集专为零基础用户打造,涵盖PHP网站搭建全流程,从环境配置到实战开发,免费、易懂、系统化,助你快速入门建站!

8

2026.01.09

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Web Forms  教程
Web Forms 教程

共19课时 | 3.6万人学习

Web Pages 教程
Web Pages 教程

共64课时 | 19.9万人学习

ASP.NET 教程
ASP.NET 教程

共78课时 | 37.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号