摘要:验证器练习代码: <?php /** * Created by PhpStorm. * User: Administrator * Date: 2019/4/19 * Time: 14:09 */ namespace app\val
验证器练习代码:
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2019/4/19
* Time: 14:09
*/
namespace app\validate;
use think\Validate;
class Staff extends Validate
{
//验证规则
protected $rule =[
'name' => 'require|length:4,20',
'sex' => 'in:0,1',
'age' => 'require|between:18,60',
'salary' => 'require|gt:1500'
];
//自定义错误信息
protected $message = [
'name.require'=>'员工姓名不能为空',
'name.length'=>'姓名不符合规定',
'sex.in'=>'性别为男或者女',
'age.require'=>'年龄不能为空',
'age.between'=>'年龄不符合规定',
'salary.require'=>'工资不能为空',
'salary.gt'=>'工资不能低于社平工资'
];
}
控制器中代码:
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2019/4/19
* Time: 14:16
*/
namespace app\index\controller; //命名空间
use think\Controller; //继承控制器
use app\validate\Staff; //导入验证器类
use think\Validate; //导入框架的验证器类
class Verify extends Controller
{
//验证器验证
public function demo1()
{
//准备验证的数据
$data =[
'name'=>'lyu',
'sex'=>0,
'age'=>40,
'salary'=>2000
];
//验证规则
$validate = new Staff();
if(!$validate->check($data))
{
dump($validate->getError());
}else{
return '验证通过';
}
}
//验证器的简化操作:$this->validate($data,$rule,$mess)
public function demo2()
{
//准备验证的数据
$data =[
'name'=>'lyudddd',
'sex'=>0,
'age'=>46,
'salary'=>2000
];
//准验证规则
$rule = 'app\validate\Staff';
$res = $this->validate($data,$rule);
if(true !== $res){
return $res;
}
return '验证成功';
}
//当前控制器直接验证
public function demo3()
{
//准备数据
$data =['age'=>20];
//验证条件
$rule = ['age'=>'between:10,50'];
//提示信息
$message =['age.between'=>'年龄必须在10到50之家'];
//验证操作
$res = $this->validate($data,$rule,$message);
if(true !== $res){
return $res;
}
return '验证成功';
}
//独立验证
public function demo4()
{
//调用think\Validate.php,用Validate::make()创建验证规则并返回验证对象
//$validate->check($data)验证
//1.创建验证规则
$rule = ['age'=>'require|between:30,60'];
//2.错误信息
$message =['age.require' =>'年龄必须填写' ,
'age.between'=>'年龄必须在10到50之间'];
//3.创建数据
$data = ['age'=>50];
//4.执行Validate::make()
$validate = Validate::make($rule,$message);
$res = $validate->check($data);
return $res ? '验证通过' : $validate->getError();
}
}
批改老师:西门大官人批改时间:2019-04-20 13:07:09
老师总结:系统一般会对用户输入的数据进行校验,可以手工校验,也可以写验证器校验。