我正在为 Laravel 使用 Backpack,并且正在实施upload_multiple Field
我正在尝试将此字段验证为sometimes,仅required当没有任何项目时:
- 如果有选择要上传的项目,则继续。
- 如果没有选择,并且有现有项目,请继续。
- 但是,如果没有任何选定的项目并且之前没有任何内容,则显示
required字段错误消息。
调试发布请求,假设字段名称photos[]始终具有第一项null:
[
"photos" => [
0 => null
]
]
所以当我验证使用sometimes|required
"photos" => "between:1,4",
"photos.*" => "sometimes|required|mimes:png,jpeg,jpg|max:2048"
如果选择了一个项目,它将继续并上传它们。现在,当我尝试在不选择任何项目的情况下提交表单(通过知道之前上传了现有项目)时,它显示required field error message.
因为photos数组总是有第一项,就像我上面提到null的那样没有选择。
解决这个问题的方法是提供nullable验证规则:
"photos.*" => "sometimes|nullable|..."
但是nullable设置为规则,required规则永远不会起作用。
也许主要问题是因为photos[]总是让第一个项目null好像没有被选中。
并且它应该始终关心验证中现有的已上传项目,查看是否已上传现有项目然后不显示所需的错误消息,如果没有并且提交请求为空photos则显示所需的错误。
我怎样才能做到这一点?