在Silex的一个“验证”传递中应用几个约束

时间:2013-01-22 09:54:17

标签: validation symfony constraints silex explicit

我正在使用Silex,并尝试使用验证器服务验证某些值。但问题是我需要对一个值应用几个约束,但验证器不允许在不使用Required约束的情况下执行此操作。

当我只想验证一个选择值(比如'apple'或'orange')时,我必须包装约束ChoiceNotNull(因为Choice允许null 1}}值}转换为RequiredCollection(因为Required不能在没有Collection的情况下使用,CollectionValidator验证系列Required这样的约束:像这样:

$violations = $app['validator']->validate(array('value'), 
    new Collection(array(
        new Required(array(
            new Choice(array('apple', 'orange')),
            new NotNull()
        ))
    )));

它看起来很冗长,所以我正在寻找更优雅的解决方案(明确使用验证器)。

1 个答案:

答案 0 :(得分:0)

您可以使用接受约束数组的validateValue函数作为第二个参数。

$violations = $app['validator']->validateValue('value', array(
    new Choice(array('apple', 'orange')),
    new NotBlank()
));