摘要:
我们在书写控制器语句在有时候需要做到验证比如说我要判断提交的某个字段的变量 不能为空 书写起...
描述:
我们在书写控制器语句在有时候需要做到验证
比如说我要判断提交的某个字段的变量 不能为空 书写起来就很麻烦
如果验证的规则多了就感觉代码一大堆 影响代码的美观 而且效率不高
所以 需要一款表单验证器了
如何使用
把validator.class.php 验证类 放到/yzmphp/core/class目录下 即可
然后 我们需要构建一个模型验证类 可以输出验证规则 以及自定义错误提示
以下是一个示例文件 具体你需要到模块的model目录下新建一个模型类 比如说我新建了一个文件叫test_validate.class.php
<?php // +---------------------------------------------------------------------- // | Site: [ http://www.yzmcms.com] // +---------------------------------------------------------------------- // | Copyright: 袁志蒙工作室,并保留所有权利 // +---------------------------------------------------------------------- // | Author: zhaosong 原创字段验证类 请不要未授权的情况下搬运代码为自己的 // +---------------------------------------------------------------------- // | Explain: 这不是一个自由软件,您只能在不用于商业目的的前提下对程序代码进行修改和使用,不允许对程序代码以任何形式任何目的的再发布! // +---------------------------------------------------------------------- yzm_base::load_sys_class('validator','',0); class test_validate extends validator { /** * @书写验证规则 * @author zhaosong * @date 2023-11-03 */ protected $rules = [ 'model' => 'required|min:6', 'end'=>'required' ]; /** * @自定义错误信息提示 * @author zhaosong * @date 2023-11-03 */ protected $messages = [ 'model.required' => 'model模型不能为空', 'model.min' => 'model字段最少需要6位', 'end.isnumber' => 'end这个字段必须为数字', 'end.required'=>'这个字段不能为空!!!' ]; }
我们可以到表单方法中使用 列如
<?php // +---------------------------------------------------------------------- // | Site: [ http://www.yzmcms.com] // +---------------------------------------------------------------------- // | Copyright: 袁志蒙工作室,并保留所有权利 // +---------------------------------------------------------------------- // | Author: YuanZhiMeng // +---------------------------------------------------------------------- // | Explain: 这不是一个自由软件,您只能在不用于商业目的的前提下对程序代码进行修改和使用,不允许对程序代码以任何形式任何目的的再发布! // +---------------------------------------------------------------------- defined('IN_YZMPHP') or exit('Access Denied'); class test { // 请注意这只是一个测试模块 请按照你需求来设置验证规则 以下是在add方法中 // 获取的表单参数提交给验证模型 验证数据是否符合验证规则 public function add(){ if(is_post()) { // 加载了模型验证类 yzm_base::load_model('test_validate', '', 0); // 这里把提交的参数传递给模型验证类 $validator = new test_validate($_POST); $isValid = $validator->check(); if($isValid){ // 如果验证规则不符合就会回调错误信息 没有信息回调就是验证通过的意思 return_message($isValid, 0); } } } }
基本验证规则就是这样 我们来查看效果
我们在字段为空的时候 会错误提示 该字段不能为空 这是英文的 如果 我们需要实现自定义提示信息
我们可以在模型验证类中写
protected $messages = [ 'end.required'=>'这个字段不能为空!!!' ];
看看效果
基本使用
我们可以一个提交变量字段验证多个规则 列如
protected $rules = [ 'model' => 'required|min:6', 'end'=>'required' ];
先验证 不能为空 后验证 字符串最少6为 使用分号隔开
然后再验证下一个需要验证的字段
如果字段有多个验证规则 我们需要分开设置多个自定义提示信息列如
protected $messages = [ 'model.required' => 'model模型不能为空', 'model.min' => 'model字段最少需要6位', ];
这块应该是可以理解的 那我们看看内置多少验证规则可以写
验证规则
验证某个字段必须,例如:
'name'=>'require'
验证某个字段的值是否为纯数字例如:
'num'=>'number'
验证某个字段的值是否为整数,例如:
'num'=>'integer'
验证某个字段的值是否为浮点数字,例如:
'num'=>'float'
验证某个字段的值是否为布尔值,例如:
'num'=>'boolean'
验证某个字段的值是否为email地址,例如:
'email'=>'email'
验证某个字段的值是否为数组,例如:
'info'=>'array'
验证某个字段的值是否为字符串,例如:
'info'=>'string'
验证值是否为有效的日期,例如:
'date'=>'date'
验证某个字段的值是否为纯字母,例如:
'name'=>'alpha'
验证某个字段的值是否为字母和数字,例如:
'name'=>'alnum'
验证某个字段的值只能是汉字,例如:
'name'=>'hanzi'
验证某个字段的值只能是汉字、字母和数字,例如:
'name'=>'hanzi_alnum'
验证某个字段的值只能是汉字、字母、数字和下划线_及破折号-,例如:
'name'=>'hanzi_alnum_dash'
验证某个字段的值只能是控制字符(换行、缩进、空格),例如:
'name'=>'control_chars'
验证某个字段的值只能是小写字符,例如:
'name'=>'lowercase'
验证某个字段的值只能是大写字符,例如:
'name'=>'uppercase'
验证某个字段的值只能是空白字符(包括缩进,垂直制表符,换行符,回车和换页字符),例如:
'name'=>'whitespace'
验证某个字段的值是否为有效的域名或者IP,例如:
'host'=>'domain_or_ip'
验证某个字段的值是否为有效的URL地址,例如:
'url'=>'url'
验证某个字段的值是否为指定格式的日期,例如:
'dates'=>'dates'
验证某个字段的值是否为有效的手机,例如:
'mobile'=>'phone'
验证某个字段的值是否为有效的身份证格式,例如:
'id_card'=>'id_card'
验证某个字段的值的最大长度,例如:
'name'=>'max_length:25'
验证某个字段是否和另外一个字段的值一致,例如:
'repassword'=>'same:11'
验证某个字段是否以某个字符串开头,例如:
'name'=>'starts_with:yzmcms'
验证某个字段是否以某个字符串结尾,例如:
'name'=>'ends_with:yzmcms'
验证某个字段是否以包含某个字符串,例如:
'name'=>'contains:yzmcms'
验证是否等于某个值,例如:
'score'=>'equals:100'
验证是否大于等于某个值,例如:
'score'=>'greater_than_equal:60'
验证是否小于等于某个值,例如:
'score'=>'less_than_equal:100'
请登录后发表评论