微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Laravel 验证请求过滤器字段,字段名称中带有点句点

如何解决Laravel 验证请求过滤器字段,字段名称中带有点句点

这里是在laravel中验证表单请求,请求包含过滤器,过滤器中的字段名称有句点(点)存在。

示例请求网址

...?filter[entity.abc][]='value'

这里 entity.abc 实际上是一个字符串,但是当给 'filter.entity.abc' 指定规则时,laravel 认为它是一个对象数组

filter:[
    [entity]: [ {abc:'value'}]
      ]

实际上是

filter:[
   [entity.abc]:['value']
]

所以我们需要为第二个点制作正则表达式,相当于:

public function rules()
{
    return [
        'filter.entity\.abc' => ['bail','sometimes','array'],'filter.entity\.abc' => ['uuid']
    ];
}

即使存在无效的 uuid 也始终返回 true

解决方法

为什么不这样修改您的请求?

...?filter[entity][abc][]='value'

编辑:

您可以在 Laravel 中使用自定义验证,您可以在其中解构参数并手动检查值

Laravel 自定义验证 https://laravel.com/docs/8.x/validation

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。