Я использую Silex и пытаюсь проверить какое-то значение с помощью службы проверки. Но проблема в том, что мне нужно применить несколько ограничений к одному значению, но валидатор не позволяет сделать это без использования ограничения Required
.
Когда я просто хочу проверить значение выбора (скажем, «яблоко» или «апельсин»), я должен обернуть ограничения Choice
и NotNull
(поскольку Choice
допускает значение null
) в Required
и Collection
(поскольку Required
нельзя использовать без Collection
, и это CollectionValidator
, который проверяет ряд ограничений Required
) следующим образом:
$violations = $app['validator']->validate(array('value'),
new Collection(array(
new Required(array(
new Choice(array('apple', 'orange')),
new NotNull()
))
)));
Это выглядит многословно, поэтому я ищу более элегантное решение (для такого явного использования валидатора).