验证


验证

PAA-ThinkPHP6 继承于ThinkPHP V6.0,所以直接继承了ThinkPHP V6.0验证器。

ThinkPHP V6.0 内置规则:

文档链接: 点我

控制器中使用验证器

ThinkPHP V6.0 官方文档中有详细的验证器中使用文档。

文档链接: 点我

有三种操作方式:

前提是都需要定义好验证器,例如:我们定义一个\app\validate\User验证器类用于User的验证。

  • 方法内实例化调用

    $validate = new \app\validate\User;
    $result = $validate->check($data);
    
    if(!$result){
        echo $validate->getError();
    }
    
    1
    2
    3
    4
    5
    6
  • 当前控制器继承了app\BaseController

    $result = $this->validate($data,'\app\validate\User::class');
    
    if(!$result){
        echo $validate->getError();
    }
    
    1
    2
    3
    4
    5
  • 使用助手函数validate()

    try {
            validate(User::class)->check([
                'name'  => 'thinkphp',
                'email' => 'thinkphp@qq.com',
            ]);
        } catch (ValidateException $e) {
            // 验证失败 输出错误信息
            dump($e->getError());
        }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9

注解中使用验证器

ThinkPHP V6.0 官方文档中有详细的注解验证器使用文档。(也是本人写的

文档链接: 点我

前提是都需要定义好验证器,例如:我们定义一个\app\validate\User验证器类用于User的验证。

示例:

<?php
namespace app\controller;

use paa\annotation\{
    Doc,Param
};
use think\annotation\route\{
    Route,Validate
};
use app\validate\User; 

class Index
{
    /**
     * @Route(value="miss",method="GET")
     * @Validate(User::class)
     * @Doc(value="缓存",hide="false")
     */
	public function hello()
    {
    	return 'hello, TP6 Annotation  Validate';
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

单个注解验证器(特色)

lazyskills/paa-thinkphp6 官方文档中有详细的使用文档。(也是本人写的

文档链接: 点我

需要先安装 "lazyskills/paa-thinkphp6": "dev-master",

引入单个参数注解器:paa\annotation\Param

函数参数 说明 字段类型 是否必传
value 参数名称 string
doc 参数说明 string
rule 验证规则 array
type 验证类型 string

示例:

<?php
namespace app\controller;

use paa\annotation\{
    Doc,Jwt,Param
};
use think\annotation\route\{
    Group,Route
};

class Index
{
     /**
     * @Route(value="test",method="GET")
     * @Param(value="name",doc="名称",rule={"require","number","alphaDash"})
     * @Param(value="age",doc="年纪",rule={"require","number"})
     * @Jwt()
     * @Doc(value="推荐测试",group="推荐",hide="false")
     */
    public function test()
    {
        return 'PAA';
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Last Updated: 1/4/2020, 11:00:12 PM

Initializing...