我有一个验证器,如下所示:
$validator = Validator::make($shipment, [
'collection_date' => 'required|date',
"parcels" => "required|array|min:1",
"parcels.*.items" => "required|array",
"parcels.*.items.*.value" => "required"
]);
现在看一下,很容易看到地块应该是一个数组,每个地块都应该有一个属性items
,并且应该是一个数组,并且每个项目都应该有一个属性{{1} }。
但是我得到的是,而不是有人像您期望的那样通过它,
value
,
他们像这样通过它:
[parcels:[{items:[{value:1}]}]]
只有一项时。验证程序失败了,正如我所希望的那样,但是消息很奇怪,因为它实际上是将[parcels:[{items:{value:1}}]]
视为一个数组,即使它实际上是一个关联数组而不是一个项目列表。
因此,该消息显示了类似items
的内容-我不记得确切内容了,我只知道它显然试图访问“值”,就好像它是“项”数组的成员一样(因为从技术上讲是这样!只是不是按照我想要的方式。)
我真正想要说的是类似error: parcels.0.items.values has no property value
答案 0 :(得分:0)
想到的快速解决方案是为您的规则添加自定义错误消息:
2019-07-05T09:42:45.679221+00:00 shinyapps[1012452]: [1] "/SFB-resultgallery"
2019-07-05T09:42:45.679636+00:00 shinyapps[1012452]: [1] "/SFB-resultgallery/Figures"
2019-07-05T09:42:45.679740+00:00 shinyapps[1012452]: [1] "/sfb-resultgallery/Figures/atg6-9_KD_in_brain"
2019-07-05T09:42:45.679936+00:00 shinyapps[1012452]: Warnung in dir.create(paste0("./static", j))
2019-07-05T09:42:45.679938+00:00 shinyapps[1012452]: kann Verzeichnis './static/sfb-resultgallery/Figures/atg6-9_KD_in_brain' nicht erzeugen. Grund 'No such file or directory'
您可以在Laravel documentation中找到有关自定义错误消息的更多详细信息。
答案 1 :(得分:0)
使用自定义错误消息进行显示。您的代码就像
$validator = Validator::make($shipment, [
'collection_date' => 'required|date',
"parcels" => "required|array|min:1",
"parcels.*.items" => "required|array",
"parcels.*.items.*.value" => "required"
],
[
'parcels.*.items.array' => 'Your custom error msg which you want to display',
]);