Dil*_*ani 4 php laravel laravel-5 laravel-validation laravel-5.7
我的表单多次具有相同的输入字段。我的表单字段如下:
<input type='text' name='items[]'>
<input type='text' name='items[]'>
<input type='text' name='items[]'>
Run Code Online (Sandbox Code Playgroud)
并且请求包含 ($request['items'):
array:1 [?
"items" => array:3 [?
0 => "item one"
1 => "item two"
2 => "item three"
]
]
Run Code Online (Sandbox Code Playgroud)
我希望至少填写其中一项。我当前在控制器中的验证是
$validator = Validator::make($request->all(),[
'items.*' => 'required|array|size:1'
]);
Run Code Online (Sandbox Code Playgroud)
这是行不通的。我尝试了大小、必需、可为空的组合。什么都行不通。
事实上,使用它就足够了:
$validator = Validator::make($request->all(),[
'items' => 'required|array'
]);
Run Code Online (Sandbox Code Playgroud)
所做的更改:
items而不是items.*- 你想设置一般项目的规则,如果你使用items.*它意味着你将规则分别应用于数组的每个发送元素size:1因为这意味着您只想发送一个元素(并且您至少需要一个)。你根本不需要它,因为你有required规则。您可以阅读所需规则的文档,你可以阅读那里空数组会情况required的规则将失效,所以这个required规则阵列使得该阵列应该至少有1元,所以你不需要min:1或size:1根本就像往常一样正常地做:
$validator = Validator::make($request->all(),[
'items' => 'required'
]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12678 次 |
| 最近记录: |