我正在使用Silex,并尝试使用验证器服务验证某些值。但问题是我需要对一个值应用几个约束,但验证器不允许在不使用Required
约束的情况下执行此操作。
当我只想验证一个选择值(比如'apple'或'orange')时,我必须包装约束Choice
和NotNull
(因为Choice
允许null
1}}值}转换为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()
))
)));
它看起来很冗长,所以我正在寻找更优雅的解决方案(明确使用验证器)。
答案 0 :(得分:0)
您可以使用接受约束数组的validateValue
函数作为第二个参数。
$violations = $app['validator']->validateValue('value', array(
new Choice(array('apple', 'orange')),
new NotBlank()
));