[Request 验证类] 排除当前页面字段验证
一直认为处理好细节可以更好的拥有体验性,无论前台后台。所以在使用Request验证类发现了一个小的细节问题,当使用
unique:attrs,aname
时会验证提交的内容在attrs
表中查找aname
字段下的值是否存在,表面上看起来没有任何问题,但是在编辑时如果不修改内容直接提交数据就会提示已经存在,如果说我想编辑数据时候突然不想编辑了,难道一定要返回才可以吗,直接点击保存数据也会拥有更好的体验性。
解决方法
只需要在request
验证类中,unique
验证规则后增加第三个参数即可,这样我们创建属性时候会验证我们填写的名称是否存在,编辑时候会通过路由获取到当前的id
然后排除掉。
···
···
public function rules()
{
//为了要知道排除谁不验证,应该获取当前路由里面的参数
$id = $this->route('attr');
//第一个参数是指定表名
//第二个参数是指定在这个表中的那个字段要验证唯一
//第三个参数是在验证的时候要排除的编号
return [
'aname' => 'required|unique:attrs,aname,' . $id['id'],
];
}
public function messages()
{
return [
'aname.required' => '属性名称不能为空',
'aname.unique' => '属性名称已存在'
];
}
···
···
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: