您现在的位置是:首页 > thinkphp6教程thinkphp6教程
thinkphp6验证规则失效 thinkphp6Validate验证器使用方法注意事项
上善若水2020-07-17 15:06:55【thinkphp6教程】 7029人已围观
简介今天在使用thinkphp6验证规则时遇到一些坑,导致验证规则始终无法生效,要不就重复验证,要不就验证失效简直心态爆炸,可能是自己用法不正确吧,来看看使用心得吧. 首先来看看正确的验证写法class
今天在使用thinkphp6验证规则时遇到一些坑,导致验证规则始终无法生效,要不就重复验证,要不就验证失效简直心态爆炸,可能是自己用法不正确吧,来看看使用心得吧.
首先来看看正确的验证写法
class CollectTask extends Validate
{
protected $rule = [
'name|采集任务名' => 'require|unique:collect_task|max:255',
'urls|采集任务列表' => 'require',
];
protected $scene = [
'add_type1' => ['name','urls'],
'edit' => ['name'],
];
public function sceneEditType1()
{
return $this->only(['name', 'urls'])
->remove('name', 'unique|max:255');
}
}
这里name|采集任务名
这种写法就是相当于给name
起了一个中文名用于验证显示,就可以不用再定义类似消息规则,唯一的缺陷就是这样写就不能国际化了.
protected $message = [
'name.require' => '名称必须',
'name.max' => '名称最多不能超过25个字符',
'age.number' => '年龄必须是数字',
'age.between' => '年龄只能在1-120之间',
'email' => '邮箱格式错误',
];
验证添加
$v=new \app\admin\validate\collect\CollectTask();
if (!$v->scene('add_type1')->check($data)) {
echo $->getError();
}
验证编辑
$v=new \app\admin\validate\collect\CollectTask();
if (!$v->scene('editType1')->check($data)) {
echo $->getError();
}
以上为正确写法,说下我这里遇到的坑..
我将这里的规则写成$v->scene('edit_type1')->check($data)
这里应该是驼峰写法,写成下划线后竟然还能验证,是验证的全字段,我当时就以为是用下线写法,实际上的用驼峰写法,不然会验证全部,这里按道理没找到验证场景应该就不验证,结果非得验证全字段,导致排斥错误用了很久.
第二个坑就是remove()的用法,官方文档有说明.
如果对同一个字段进行多次规则补充(包括移除和追加),必须使用下面的方式:
remove('field', ['rule1','rule2'])
// 或者
remove('field', 'rule1|rule2')
下面的方式会导致rule1规则remove不成功
remove('field', 'rule1')
->remove('field', 'rule2')
奇怪的写法,但是还得遵循,(官方验证器传送门)[https://www.kancloud.cn/manual/thinkphp6_0/1037627]
很赞哦! (40)
相关文章
随机图文
-
php技术提升心得与方法
现在的PHP市场虽然充斥了大量的的PHP开发人员,但这些人当中真正能称得上高手的却寥寥无几。很多公司虽然招聘了一些PHP开发人员,但是由于技术水平不高,导致公司的项目一直堆积。这不仅另公司无奈也让已经入职的PHP开发人员着急,他们也想要在PHP领域更近一步,但却苦于找不到提高自己的方法,下面我们的鸥仔收集了一些PHP大神的一些工作方式、习惯,让大家看看PHP大神们是如何工作,也希望这些方法能帮助到那些想要在PHP领域更近一步的人。 -
让人瞬间爆笑的笑话
1、“王爷,王妃被您送去快手已经三天了。”“她认错了吗?”“没有,王妃说花花世界迷人眼,没有实力你别赛脸,今朝你薄情无义把我放逐,他日我涅槃重生必把你铲除。送你一句话,铁汁,做王呢,是该傲,但是给你脸呢,你得要!”2、去掉一个最高温,去掉一个最低温,今天的天气预报播放完了!3、上课的时候,小明被老师叫起来答题,小明:谢邀。4、你要做自己杀手小张接到了这样的命令。5、一男 -
centos查看jenkins的admin初始密码
centos查看jenkins的admin初始密码,我们用yum安装成功后,首次会提示密码的位置,以解锁jenkins,但是如果你没有没有记住密码,下次登录又要回来找密码。jenkins默认密码的 位 -
逗女生开心的笑话
1.有一天有个婆婆坐车,做到中途婆婆不认识路了,婆婆用棍子打司机的屁股说:这是哪?司机:这是我的屁股……2.甲:那个人在干什么?乙:他在发抖。甲:他为什么要发抖了?乙:他冷丫。甲:哦,原来发抖就不会冷啦!3.妻:我真是瞎了眼踩到狗屎才会嫁给你。夫:我真是瞎了眼踩到狗屎才会娶你。狗屎:我好倒霉哦!躺倒那里都会被你两踩到