TP6.1.5 使用验证器

88 阅读1分钟

步骤

1.生成验证类

php think make:validate User

2.填写验证规则和提示语

<?php
declare (strict_types = 1);

namespace app\validate;

use think\Validate;

class User extends Validate
{
    /**
     * 定义验证规则
     * 格式:'字段名' =>  ['规则1','规则2'...]
     *
     * @var array
     */
    protected $rule = [
        'name'  =>  'require|max:15',
        'sort' =>  'require|integer',
    ];

    /**
     * 定义错误信息
     * 格式:'字段名.规则名' =>  '错误信息'
     *
     * @var array
     */
    protected $message  =   [
        'name.require' => '名称必须',
        'name.max'     => '名称最多不能超过15个字符',
        'sort.require' => '排序值必须',
        'sort'         => '排序值格式错误',    
    ];
}

3.控制器开启验证

use app\validate\User;
use think\exception\ValidateException;

/*2.5 添加栏目 */
    public function class_add_post_****()
    {
        session_safe();
        $a = Request::param('a');
        $b = Request::param('b');

        try {
            validate(User::class)->check([
                'name'  => $a,
                'sort' => $b,
            ]);
        } catch (ValidateException $e) {
            // 验证失败 输出错误信息
            dump($e->getError());
        }

        //插入数据库
        $data = ['father_id' => 0, 'name' => $a, 'sort' => $b];
        $result = Db::name('class')->insert($data);
        if($result){
            return 'success';
        }  
    }

提示:验证器是否生效可以使用接口测试工具进行测试,如apifox工具。