博主信息
博文 38
粉丝 0
评论 3
访问量 51017
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
tp5.1验证
意外的博客
原创
2902人浏览过

1.独立验证:也就是小范围进行数据验证,不用另外写一个验证类引入;

//首先在当前控制器下引入框架的验证类;

use think\Validate;

//在需要验证的方法中写入一下代码;
//验证规则
$rule = [
    'name'  => 'unique:table(表名必须有)|require|max:25',
    'age'   => 'number|between:1,120',
    'email' => 'email',];
 //验证错误信息;
$msg = [
    'name.require' => '名字不能为空',
    'name.unique' => '名字不能重复'
    'name.max'     => '不能超过25个字符',
    'age.number'   => '年龄必须是数字',
    'age.between'  => '年龄在1到120之间',
    'email'        => '邮箱格式不正确',
    ];
//需要验证的数据;
$data = [
    'name'  => '张三',
    'age'   => 122,
    'email' => 'zhangsan@qq.com',
    ];
$validate = Validate::make($rule)->message($msg);
$result = $validate->check($data);
if(!$result){
 echo $validate->getError();
 //ajax返回;
 // return $info = ['code'=>0,'msg'=>$validate->getError()];
 }

2.验证器验证

首先在和控制器平级层创建一个文件夹为validate,里面有文件,文件名对应当前的控制器名,如在admin控制器需要验证,文件名就为admin.php

namespace app\index\validate;
use think\Validate;
class Admin extends Validate
{
    //验证规则
    protected $rule =   [
        'name'  => 'require|max:25',
        'age'   => 'number|between:1,120',
        'email' => 'email',    
    ];
    //返回错误信息
    protected $message  =   [
        'name.require' => '名称必须',
        'name.max'     => '名称最多不能超过25个字符',
        'age.number'   => '年龄必须是数字',
        'age.between'  => '年龄只能在1-120之间',
        'email'        => '邮箱格式错误',    
    ];
    
}

在控制器中调用;下面会引入上面2的验证类;

namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
    public function index()
    {
    //需要验证的数据;一般为前端返回的数据;
        $data = [
            'name'  => 'thinkphp',
            'email' => 'thinkphp@qq.com',
        ];
        //注意app前面有一个反斜杠;
        $validate = new \app\index\validate\Admin;
          // $res = $validate->check($data);
        if (!$validate->check($data)) {
            dump($validate->getError());
            
        }
    }
}

3.验证场景

就是在验证类中增加一个规则
 protected $scene = [
        'edit'  =>  ['name','age'],
        'add' => ['name'],
    ];
    
    //控制器中
    //在验证场景,表示在编辑的时候,只会验证name字段;
    if (!$validate->scene('edit')->check($data)) {
            dump($validate->getError());
            
        }


本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

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

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学