先创建一个验证类:
<?php
namespace app\validate;
use think\Validate;
class Staff extends Validate
{
//创建验证规则
//以属性的方式进行配置,属性不能更改
protected $rule = [
'name'=>
'require|min:5|max:15',
'sex' => 'in:0,1',
];
//错误信息可以自定义:
protected $message = [
'name.require' => '用户姓名不能为空',
'name.min' => '姓名不能少于5个字符',
'name.max' => '姓名不能大于15个字符',
'sex.in' => '性别只能选择男或女',
];
}然后在控制器里调用:
<?php
namespace app\index\controller;
use think\Controller;
use app\validate\Users; //导入验证器
use think\Validate;
class Verify extends Controller
{
//验证器: 直接实例化验证器完成验证
public function demo1()
{
//准备要验证的数据
$data = [
'name'=>
'Line',
'sex' => 3,
];
$validate = new Users();
if (!$validate->check($data)) {
dump($validate->getError());
} else {
return '验证通过';
}
}
//验证器: 使用控制器内容的验证对象来完成验证: $this->validate($data, $rule)
public function demo2()
{
//准备要验证的数据
$data = [
'name'=>'validate',
'sex' => 0,
];
$rule = 'app\validate\Users';
$rule = [
'age' => 'between:10,50',
];
$message = [
'age.between' => '年龄必须在10到50之间'
];
$data = ['age'=>8];
// $res = $this->validate($data,$rule);
$res = $this->validate($data,$rule,$message);
if (true !== $res) { //验证成功返回true,否则返回错误信息
return $res;
}
return '验证成功';
}
//独立验证: 直接实例化think\Validate.php进行验证
public function demo3()
{
//主要是通过Validate::make()和check()进行验证
//make($rule,$mess):创建验证规则与错误信息
//check($data)完成数据验证
//1.创建验证规则
$rule = [
'age' => 'require|between:20,60'
];
//2.创建错误信息
$mess = [
'age.require' => '年龄必须填写',
'age.between' => '年龄必须在20到60之间'
];
//3.创建验证数据
$data = ['age' => 13];
//初始化验证器类,并返回验证器实例
$validate = Validate::make($rule, $mess);
$res = $validate->check($data);
return $res ? '验证通过' : $validate->getError();
}
}