php - 无法验证 laravel 中的嵌套数组
问题描述
验证具有相同键和规则的嵌套数组时,将拾取不正确的错误消息,例如,如果规则是:
$rules = [ 'elem.*.test' => 'required', 'elem.*.subitem.test' =>
'required', ];
和消息:
$messages = [ 'elem.*.test.required' => 'top level item required', 'elem.*.subitem.test.required' => 'sub item required', ];
解决方案
Str::is()
在 FormatsMessages::getFromLocalArray() 中调用。
你不能使用
str_replace('*', '[^.]*', $sourceKey)
因为它被 preg_quote() 转义了。
你可以添加一个
$wildcard = '.*'
参数Str::is()
并覆盖它'[^.]*'
推荐阅读
- javascript - 关闭元素的用户无法在其外部单击,因为它在 SVG 图的其他元素上打开
- xpath - BaseX XQuery 给出错误消息“上下文未声明”
- capl - 如何在 CAPL 中插入“on key”重播块
- clips - 将一个值与另一个值进行比较以测试文件是否存在于 CLIPS 中
- javascript - System.Data.Entity.DynamicProxies foreach
- python - 如何使用python模块networkx绘制具有负边权重的正确有向图?
- html - 使用行跨度突出显示行
- oauth-2.0 - 什么是 GCP 组织?
- c++ - 如何将混合应用上传到 google play?
- javascript - 无法读取未定义的不和谐嵌入的属性“包含”以检测表情符号