验证复选框未以symfony2格式映射到实体

我将一个非映射字段添加到symfony2表单类型中:

$builder->add('terms','checkbox', array('mapped' => false,
        'constraints' => array(new NotBlank())));

但NotBlank()约束不起作用! 只有当我从“复选框”更改为“文本”时,它才能按预期工作。 那么我如何验证复选框? 当然,我也尝试过使用'True()','EqualTo()'和'Length(...)'约束。 但没有成功。 我也尝试了不同的POST值(1/0,true / false,on / off ...)。

关于symfony2中表单字段验证的复选框字段和文本字段之间有什么大不同?

Thanx Stef


NotBlank验证字符串不为空。 尝试使用NotNull

真正的也必须有效。

验证值是否为真。 具体来说,这将检查值是否完全正确,确切地说是整数1,或者确切地说是字符串“1”。 这个约束可以应用于属性(例如注册模型中的termsAccepted属性)。


Symfony 3.0的更新回答

use SymfonyComponentFormExtensionCoreTypeCheckboxType;
use SymfonyComponentValidatorConstraintsIsTrue;

// ...
{
    $builder->add('terms', CheckboxType::class, array('constraints'=>new IsTrue(array('message'=>'Needs to be clicked')));
}
链接地址: http://www.djcxy.com/p/57889.html

上一篇: Validate checkbox not mapped to entity in a symfony2 form

下一篇: path in custom field type