在向所需复选框字段添加消息时,我有一种奇怪的行为。这是字段定义:
$form = $form->add('in_name_of_president', 'checkbox', array(
'label' => $this->trans("Actúo en nombre del presidente"),
'mapped' => false,
'attr'=>array('oninvalid'=>"setCustomValidity('Convocar junta es una acción reservada al presidente. Debes clicar el cuadro de confirmación')"),
'constraints' => new True(array(
'message' => "Convocar junta es una acción reservada al presidente. Debes clicar el cuadro de confirmación"
))));
如果我在提交表单之前选中了复选框,它可以正常工作,但是如果我尝试提交而不检查它,我会收到错误消息,然后,如果我检查它并尝试再次提交,我就会这样做虽然现在选中了复选框,但仍然会收到错误。
答案 0 :(得分:0)
True
验证程序中的问题。如果值为NULL,则所有验证器都不检查该值(预期:NotNull
,NotBlank
)。 (例如:https://github.com/UserScape/symfony-component-bundle/blob/master/Validator/Constraints/TrueValidator.php#L34)。如果未选中该复选框,则表单数据中的值为NULL
。 (有关详细信息,请参阅Symfony表单中CheckboxType
的来源)。
如果您要检查复选框,则必须使用NotNull
验证。