tp框架的某个函数的位置-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

tp框架的某个函数的位置

2016-03-10 09:09:05 2039 1

thinkphp自动验证函数是在哪个文件里的

初学php 想了解关于

array(
array( ),
array( ),
......

)这种字段的的工作原理 所以希望借助自动验证来初步学习下 有木有大神知道这个函数是在哪个文件里的 或者有懂上述数组的匹配在tp的匹配的原则的
screenshot

PHP
取消 提交回答
全部回答(1)
  • 小旋风柴进
    2019-07-17 18:56:45

    ThinkPHP 自动验证定义的附加规则如下:
    regex:使用正则进行验证(默认)
    unique:验证唯一性
    confirm:验证表单中的两个字段是否相同
    equal:验证是否等于某个值
    in:验证是否在某个范围内
    function:使用函数验证
    callback:使用方法验证
    自动验证例子
    各种自动验证参考例子如下:
    // 默认情况下用正则进行验证

    array('title','require','标题不能为空。'),
    array('order','number','排序必须是数字。',2),
    array('email','email','邮箱格式不符合要求。'),
    array('qq','qq','QQ号码不正确。'),
    
    // 在新增的时候验证标题title字段是否唯一
    array('title','','标题已经存在!',0,'unique',1), 
    
    // 验证确认密码是否和密码一致
    array('repassword','password','确认密码不正确。',0,'confirm'), 
    
    // 验证class填写的值为 一班
    array('class','一班','班级必须填写一班。',0,'equal'), 
    
    // 当值不为空的时候判断是否在一个范围内
    array('value',array(1,2,3),'值的范围不正确。',2,'in'), 
    
    // 自定义函数验证用户名格式
    array('username','checkName','用户名格式不正确。',0,'function'), 
    
    // 在注册或更改资料是调用 checkEmail 方法检查邮箱
    array('email','checkEmail',1,'callback'),

    使用正则表达式(regex)验证
    上述几类附加规则中,使用正则表达式是经常使用的,也是系统默认的验证附加规则。系统内置了如下正则检测规则:
    require(必须)、email(邮箱格式)、url(URL地址)、currency(货币)、number(数字)、qq(QQ号码)、english(英文字符)。
    这些附加规则可以直接使用,如果这些附加规则无法满足要求,可以使用自定义的正则规则:
    array('username','/^{3,15}$/','用户名不符合要求。'),
    该规则要求用户名只能为英文字符及下划线和数字组成,且长度为3-15个字节。
    要了解更多的正则表达式规则参见《PHP 常用正则表达式整理》。
    使用自定义函数(function)验证
    使用自定义函数验证附加规则,函数可以是 Common/common.php 里的自定义函数,也可以是 PHP 的内置函数:

    class UserModel extends Model{
        protected $_validate = array(
            array('username','checkName','用户名不符合要求。',0,'function'),
        };
    }

    自定义 checkName 函数:

    function checkName($username){
        if(!preg_match('/^{3,15}$/', $username)){
            return false;
        }else{
            return true;
        }
    }

    提示:对于用户名的规则可以直接使用正则验证而无需函数,在此只是为了演示自定义函数的验证的用法而已。
    使用方法(callback)验证
    ThinkPHP 自动验证还支持调用当前 Model 类的一个方法来进行验证。

    class UserModel extends Model{
        protected $_validate = array(
            array('email','checkEmail','邮箱已经存在。',1,'callback'),
        };
    // checkEmail方法

    2

        protected function checkEmail(){
            $User=new Model('User');
        // 新用户注册,验证唯一
            if(empty($_POST<'uid'>)){
                if($user->getByEmail($_POST<'email'>)){
                    return false;
                }else{
                    return true;
                }
            }else{
                // 更改资料判断邮箱与其他人的邮箱是否相同
                if($user->where("uid!={$_POST<'uid'>} and email='{$_POST<'email'>}'")->find()){
                    return false;
                }else{
                    return true;
                }
            }
        }
    }

    当 checkEmail 方法返回 false 时,验证就不通过。
    可见 ThinkPHP 自动验证功能十分强大,能满足对表单的各种验证要求。

    0 0
相关问答

1

回答

这个光标前面有很大的空格,而且想把光标放在某个字母后面也移动不到准确位置,怎么办?

2022-07-12 10:53:17 74浏览量 回答数 1

1

回答

“数字化”全景图中,怎么确保规划层目标“目标在线,上下对齐”被合理的推进呢?

2021-12-15 23:20:32 188浏览量 回答数 1

1

回答

持久层框架主要有哪些?

2021-10-27 11:29:00 170浏览量 回答数 1

2

回答

vi编辑,按esc退出不了,怎么退出编辑器

2020-12-09 14:57:16 1225浏览量 回答数 2

1

回答

如何在一个<td>里放2个以上的<form>而不换行 : 配置报错 

2020-06-04 13:15:16 274浏览量 回答数 1

1

回答

chrome 的input 如何屏蔽输入法:配置报错 

2020-06-02 17:25:10 970浏览量 回答数 1

4

回答

.vip 的三杂域名 目前不能注册吗?

2017-08-23 14:54:10 1617浏览量 回答数 4

2

回答

负载均衡4层TCP配置SSL

2016-06-27 10:34:54 3531浏览量 回答数 2

1

回答

SSH中的strut2零配置怎么配置

2016-03-23 16:08:56 1868浏览量 回答数 1

1

回答

运行维护有hostPHP这两个是什么意思,如何选择?

2014-05-26 23:05:17 3676浏览量 回答数 1
2709
文章
6591
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载