Проблема
У меня есть Form
и FieldSet
. Я хотел бы подтвердить, что FieldSet
не пуст. Кроме того, я хочу проверить каждое поле в файле FieldSet
.
До сих пор все, что я пробовал, подтверждало одно или другое, но не оба. Если elements
присутствует в спецификации входного фильтра формы, то он подтверждает, что elements
не является пустым, но не проверяет поля bar
и baz
в FieldSet
. И, конечно же, наоборот. Любая подсказка относительно того, как подойти к этому вопросу, будет высоко оценена.
Форма
class FooForm extends Form implements InputFilterProviderInterface
{
public function init()
{
$this->add([
'name' => 'elements',
'type' => Collection::class,
'required' => true,
'options' => [
'target_element' => [
'type' => SomeElementFieldSet::class
]
]
]);
}
public function getInputFilterSpecification()
{
return [
[
'name' => 'elements',
'required' => true,
'validators' => [
['name' => 'NotEmpty']
]
]
];
}
}
Набор полей
class SomeElementFieldSet extends Fieldset implements InputFilterProviderInterface
{
public function init()
{
$this->add(['name' => 'bar']);
$this->add(['name' => 'baz']);
}
public function getInputFilterSpecification()
{
return [
[
'name' => 'bar',
'required' => true,
'validators' => [
['name' => 'NotEmpty']
]
],
[
'name' => 'baz',
'required' => true,
'validators' => [
['name' => 'NotEmpty']
]
]
];
}
}
Изменить: добавлена полная спецификация проверки.