TP验证器创建和使用

Original 2019-05-17 11:25:03 344
abstract:创建验证器 <?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();
	}


}


Correcting teacher:天蓬老师Correction time:2019-05-17 17:47:32
Teacher's summary:不知你的版本是多少, 独立验证, 以后推荐使用门面类, 不要直接使用原始类

Release Notes

Popular Entries