我有一个表单,我最多可以添加30个选项字段(选项[1],选项[2],...),现在我使用'选项。*'=>请求验证中的'required'规则,但是这有一点问题,如果您提交所有选项字段为空的表单,则会显示需要每个选项字段的长错误消息,但我需要它只显示一条消息所有选项如:“每个选项字段都是必需的”。
任何想法如何制作? 谢谢!
答案 0 :(得分:2)
我找到了解决方法。我会在这里发布,以防有人需要它:
基本上,您需要在请求验证类
中覆盖formatErrors
方法
protected function formatErrors(Validator $validator)
{
$errors = parent::formatErrors($validator);
// this will remove the keys that have index larger than 0
$keys = array_filter(array_keys($errors), function($item) {
$parts = explode('.', $item);
// you might want to modify this to match your fields,
// I had another level of keys
if (count($parts) === 3 and is_numeric($parts[1]) and (int)$parts[1] > 0) {
return false;
}
return true;
});
$errors = array_intersect_key($errors, array_flip($keys));
return $errors;
}