验证器的实例

原创 2018-12-17 14:13:32 208
摘要:<?php  namespace app\index\controller; use think\Controller; use app\validate\Score; //导入验证器 use think\Validate; class Verify extends Controller { //
<?php 
namespace app\index\controller;
use think\Controller;
use app\validate\Score; //导入验证器
use think\Validate;

class Verify extends Controller
{

	//直接实例化验证器 完成验证
	public function demo1()
	{
		$data = [
			'name' => 'amyqq',
			 'sex' => '1',
			 'math' => '8',
			 'java' => '90',
			 'php' => '95'
		];

		$validate = new Score;
		if(!$validate->check($data)){
			dump($validate->getError());
		}else{
			return '验证通过';
		}

	}


	//验证器: 使用控制器内容的验证对象来完成验证: $this->validate($data, $rule)
	public function demo2()
	{
		$data = [
			'name' => 'amyqq',
			 'sex' => '1',
			 'math' => '80',
			 'java' => '90',
			 'php' => '95'
		];

		$rule = 'app\validate\Score';
		$rule = [
			'math' => 'between:10,100',
		];
		$message = [
			'math.between' => '分数必须在10-100之间'
		];

		$data = ['math'=>8];
		$res = $this->validate($data,$rule,$message);
		if (true !== $res) {	  //验证成功返回true,否则返回错误信息	
			return $res;
		}
		return '验证成功';
	}



	//独立验证: 直接实例化think\Validate.php进行验证
	public function demo3()
	{
		//1.创建验证规则
		$rule = [
			'java' => 'require|between:0,200',
		];

		//2.创建错误信息
	    $message = [
	    	'java.require' =>'分数不能为空',
			'java.between' => '分数必须在0-200之间'
		];

		//3.创建验证数据
		$data = ['java' =>333];

		//初始化验证器类,并返回验证器实例
		$validate = Validate::make($rule,$message);

		$res = $validate->check($data);
		return $res ? '验证通过' : $validate->getError();
	}
	
}

?>


<?php
//验证器
namespace app\validate;

use think\Validate;
class Score extends Validate
{
	//创建验证规则
	//以属性的方式进行配置,属性不能更改
	protected $rule = [
		'name' => 'require|min:4|max:15',
		'sex' => 'in:0,1',
		'math' => 'require|gt:10'
	];


	//自定义错误信息
	//错误信息可以自定义: 
	protected $message = [
		'name.require' => '学生姓名不能为空',
		'name.min' => '姓名不能少于4个字符',
		'name.max' => '姓名不能大于15个字符',
		'sex.in' => '性别只能选择男或女',
		'math.require' => '数学分必须输入',
		'math.gt' => '分数必须大于10'
	];
}
?>


批改老师:韦小宝批改时间:2018-12-17 14:32:09
老师总结:写的很不错!框架中的验证器在实际的开发中给我们的开发带来很大的方便哦!

发布手记

热门词条