【问题标题】:laravel validate array fieldslaravel 验证数组字段
【发布时间】:2021-02-13 04:34:42
【问题描述】:

我正在尝试使用以下 laravel 验证功能来验证数组字段

$this->validate($request,['prodActualQty' => 'required|numeric','actQty[]' => 'required'
],$messages);

我的输入文件是:<input class='form-control' type='text' name='actQty[]'>

如果字段为空,它会报错,但即使我们填写字段,它仍然会报错。

【问题讨论】:

  • 只需删除 [] 'actQty' => 'required'
  • 那么它不会产生任何错误,这意味着表单已提交。
  • 当您尝试提交并且必填字段中有值时,您会收到什么消息?

标签: php laravel


【解决方案1】:

在 Laravel 5.2 中,您可以使用通配符关键字验证表单数组元素。

因此,根据您的情况,您可以像下面这样删除 []

$this->validate($request->all(), [
    'prodActualQty'     => 'required',
    'actQty'            => 'required'
]);

或者使用通配符

$this->validate($request->all(), [
    'prodActualQty'     => 'required',
    'actQty.*'          => 'required'
]);

【讨论】:

  • 谢谢...我明白了.. 但是当写入错误消息时,它给出的所有错误数都等于输入字段。 $messages = ['actQty.*.required' => 'Please enter rawmaterial actual quantity'];
  • 对于自定义消息,您需要在 validate 方法中编写另一个参数。像这样 $this->validate($request->all(), [ 'prodActualQty' => 'required', 'actQty.*' => 'required' ], [ 'actQty.1' => '一些验证信息for actQty.1', 'actQty.2' => 'actQty.2 的一些验证信息', ]);
  • 是的..但我不知道数组字段的数量......所以写actQty.1,actQty.2会再次出现问题。
猜你喜欢
  • 2016-04-15
  • 2018-12-23
  • 2018-02-24
  • 2016-07-22
  • 1970-01-01
  • 2022-12-08
  • 2019-10-16
  • 2020-08-06
  • 2019-01-07
相关资源
最近更新 更多