摘要:创建验证器 <?php namespace app\validate; use think\Validate; class Staff extends Validate { //创建验证规则 protected $rule = [ 'name'=>'requi
创建验证器
<?php
namespace app\validate;
use think\Validate;
class Staff extends Validate
{
//创建验证规则
protected $rule = [
'name'=>'require|min:5|max:15',
'sex' => 'in:0,1',
'age' => 'require|between:10,50',
'salary' => 'require|gt: 2000'
];
//错误信息可以自定义:
protected $message = [
'name.require' => '员工姓名不能为空',
'name.min' => '姓名不能少于5个字符',
'name.max' => '姓名不能大于15个字符',
'sex.in' => '性别只能选择男或女',
'age.require' => '年龄必须输入',
'age.between' => '年龄必须在10到50周岁之间',
'salary.require' => '工资必须输入',
'salary.gt' => '工资必须大于2000元'
];
}控制的使用
<?php
namespace app\index\controller;
use think\Controller;
use app\validate\Staff; //导入验证器
use think\Validate;
class Verify extends Controller
{
//验证器: 直接实例化验证器完成验证
public function demo1()
{
//准备要验证的数据
$data = [
// 'name'=>'zhu',
'name'=>'zhulaoshi',
'sex' => 3,
'age' => 15,
'salary' => 1200
];
$validate = new Staff();
if (!$validate->check($data)) {
dump($validate->getError());
} else {
return '信息正确';
}
}
//验证器: 使用控制器内容的验证对象来完成验证: $this->validate($data, $rule)
public function demo2()
{
//验证的数据
$data = [
// 'name'=>'zhu',
'name'=>'zhulaoshi',
'sex' => 0,
'age' => 22,
'salary' => 1600
];
$rule = 'app\validate\Staff';
$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' => '年龄必须在10到50之间'
];
//3.创建验证数据
$data = ['age' => 13];
//初始化验证器类,并返回验证器实例
$validate = Validate::make($rule, $mess);
$res = $validate->check($data);
return $res ? '信息正确' : $validate->getError();
}
}
批改老师:天蓬老师批改时间:2019-05-17 17:47:32
老师总结:不知你的版本是多少, 独立验证, 以后推荐使用门面类, 不要直接使用原始类