验证场景
tip
在验证类中 自定义 $scene
属性,其中属性值就是要验证的字段。
在控制器中 调用 scene
方法就可以进行场景验证了。
一、定义验证场景
1.1 在 app/validate
目录下定义验证场景
示例:Student.php
<?php
namespace app\validate;
use core\validate\Validate;
class Student extends Validate
{
protected $rule = [
'name' => 'between:5,120|max:1|min:244|email|require|number',
'age' => 'number|between:888,999',
];
protected $message = [
'name.require' => '名称不能为空',
'name.max' => '名称最多不能超过25个字符',
'name.email' => '名称不是邮箱格式',
'name.max' => '名称太长了',
'name.between' => '名称没在范围里',
'name.number' => '名称必须是数字',
'age.between' => '年龄必须在888~999之间',
];
protected $scene = [
'edit' => ['age'],
];
}
1.2 控制器中使用
示例
public function validate()
{
$data = [
'name' => 1,
'age' => 29
];
$validate = new \app\validate\Student();
$result = $validate->scene('edit')
->check($data);
pd($result);
}