返回 验证器的使用... 登陆

验证器的使用

意外 2019-05-21 18:09:27 279
<?php
namespace app\Validate;

use think\Validate;

//继承框架的验证叫验证器模式;
class Admin extends Validate
{
	//验证规则;
	protected $rule = [
		'qq' => 'require|length:4,10', 	//长度要求4-10;
		'password' => 'require|length:4,8',
		//'sex' => 'in:0,1';	//范围0-1之间;
		//'money' => 'require|gt:2000';	//大于2000;
	];

	protected $message = [
		'qq.require' => 'qq长度必须在4到10之间',
		'password' =>  '密码长度必须在4到8之间',

	];
}
<?php
namespace app\index\controller;

use think\Controller;
use app\validate\Admin;	//导入验证器;	


// 数据验证;
class Verify extends Controller   	//无法继承两个类,所以另一个就用依赖注入;
{
	public function demo(Admin $validate ){
		$data = [
			'qq' => 'longzhu',
			'password' => 12345678,
		];

		// $validate = new Admin();		//->可以用依赖注入;
		if($validate->check($data)){
			return '验证通过';
		}else{
			dump($validate->getError());
		}

	}


	//验证器模式	,推荐使用;
	public function demo2(){
		$data = [
			'qq' => 'longzhu',
			'password' => 123245678,
		];

		$rule = 'app\validate\Admin';
		$res = $this->validate($data,$rule);
		//如果数据符合验证规则;返回的是true;
		if($res){
			return $res;
		}

		return '验证成功'; 
	}


	//独立验证;
	public function demo3(){
		//think\Validate.php
		//validate::make()	创建验证规则并返回对象;
		//Validate->check($data)	验证;

		// 1.创建验证规则;
		$rule = [
			'qq' => 'require|length:4,10', 	//长度要求4-10;
			'password' => 'require|length:4,8',
		];

		//2.错误信息
		$message = [
			'qq.require' => 'qq长度必须在4到10之间',
			'password' =>  '密码长度必须在4到8之间',
		];

		//3.创建数据;
		$data = [
			'qq' => 'longzhu',
			'password' => 1232245678,
		];

		// 重要的;验证类没找到,可以直接在原地路径;
		$validate = \think\Validate::make($rule,$message);
		$res = $validate->check($data);
		return $res? '验证通过':$validate->getError();

	}
}

在任意文件下创建一个验证器类,创建的类继承框架的类;

验证器类里有两个受保护的属性,验证规则和验证信息;    

在控制器方法中调用验证器类,(用依赖注入调用此类);

将数据和规则一起验证,并返回信息;

有信息验证失败,没信息,验证成功;

最新手记推荐

• 用composer安装thinkphp框架的步骤 • 省市区接口说明 • 用thinkphp,后台新增栏目 • 管理员添加编辑删除 • 管理员添加编辑删除

全部回复(0)我要回复

暂无评论~
  • 取消 回复 发送
  • PHP中文网