Tp5验证器 首先创建文件夹,里面的文件名和表名对应
详情请看手册 验证 部分
rule 验证规则 message 验证失败的信息 scene 验证场景,即某个方法只能用某个规则验证,其余不验证
常用的验证: 更多请查看内置规则 https://www.kancloud.cn/manual/thinkphp5/129356 require 为空验证 unique 唯一性验证,unique:表名(小写) max 长度验证 email 邮箱格式验证 url url格式验证
protected $rule = [
'title' => 'unique:link|require|max:25'
,'desc' => 'require'
,'url' => 'url|require|unique:link|max:60'
];
protected $message = [
'title.require' => '链接标题必须填写'
,'title.max' => '链接标题的长度不能超过25个字符'
,'title.unique' => '链接标题不能重复'
,'desc.require' => '链接描述必须填写'
,'url.require' => '链接地址必须填写'
,'url.url' => '链接地址格式不正确'
,'url.unique' => '链接地址不能重复'
,'url.max' => '链接地址的长度不能超过60个字符'
];
// 控制器如果没指定场景的话,不生效
protected $scene = [
//add 使用title 、url 、desc的所有规则
'add' => ['title','url','desc'],
//edit使用title的不为空、长度的规则 和url、desc的所有规则
'edit' => ['title'=>'require|max:25','url','desc'], //可以指定某种规则中的哪个规则, | 分隔
];
**
控制器的引用** 没有场景时没有场景所有规则都验证
$validate = Loader::validate('Link'); //实例化验证器 也可用助手函数 $validate = validate('Link');
if(!$validate->check($data)){
$this->error($validate->getError());
}
需要引入场景时验证指定规则
$validate = Loader::validate('Link'); //实例化验证器 也可用助手函数 $validate = validate('Link');
if(!$validate->scene('add')->check($data)){
$this->error($validate->getError());
}