我正在使用 Silex,并尝试使用验证器服务验证某些值。但问题是我需要对一个值应用多个约束,但验证器在不使用Required约束的情况下不允许这样做。
当我只想验证一个选择值(比如,'apple' 或 'orange')时,我必须将约束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()
))
)));
它看起来很冗长,所以我正在寻找更优雅的解决方案(对于验证器的这种显式使用)。