Можно ли прикрепить сообщения об ошибках самому Fieldset, а не дочернему элементу в ZF2? У меня есть форма с двумя Fieldsets, и мне нужно, чтобы элементы, заполненные Fieldset1, также заполнялись в Fieldset2. (В каждом наборе полей есть дополнительные элементы, но если заполнено Fieldset1->element1
, необходимо заполнить Fieldset2->element1
).Проверка коллекции ZF2
У меня проверка правильности работы, но я получаю пустой массив, когда звоню $form->getMessages()
.
Сообщения не устанавливаются внутри Zend\Form\Fieldset::setMessages
, поскольку он пытается найти элемент с помощью клавиши сообщения об ошибке. (В моем примере ниже 'invalidDate'
).
Я пытаюсь добавить сообщение об ошибке самому Fieldset, потому что ошибка не ограничивается одним конкретным полем, а коллекцией в целом.
//Regular Error
{
start: {
year: [
regexInvalid: "SomeMessage"
]
},
end: {
year: [
regexInvalid: "SomeMessage"
]
}
}
//Fieldset level Error
{
start: {
invalidDate: [
noMatch: "Filled in values of 'start' and 'end' must match"
]
},
end: {
invalidDate: [
noMatch: "Filled in values of 'start' and 'end' must match"
]
}
}
Update
Это проверка для start
полей. Работа валидации, я могу сравнить поля start
и end
с параметром context. start
и end
содержат такие элементы, как год, месяц, неделя, день и т.д.
return array(
"name" => "start",
"required" => true,
"validators" => array(
array(
"name" => "Application\Validator\Start"
)
)
);
Спасибо за ответ начала и окончания Fieldsets, а не элементы я проверка сделал, но сообщения не возвращаются при вызове GetMessages().. потому что Start и End не являются фактическими элементами. – Josh
Вы можете использовать вложенный 'InputFilter' для фильтрации d проверки полей ... – Wilt
@Josh Я обновил свой ответ. Я думаю, это то, что вы ищете ... – Wilt