在我的表单中,我有一个必填选项设置为 false 的字段,该字段是可选的。
但是,我想在使用该字段时对该字段进行 notBlank 验证:
@Assert\NotBlank(
* message="The name field can't be blank",
* groups={"flow_poemDataCollector_step1"}
* )
现在,我不能使用验证约束 NotBlank,因为当字段未使用时它会导致我的表单验证失败。
我尝试在 onPostBindRequest 监听器的字段中添加一个随机值,但它很复杂并且无法正常工作。我不确定这是否是正确的方法。
这是我尝试过的:($form 是一个 Symfony\Component\Form\FormInterface 对象)
$form = $event->getForm();
$formData = $form->getData();
$formData->setUserName("foo");
$form = $form->setData($formData);
但随后我得到一个错误,我无法在未绑定(bind)的表单上调用 isValid()。
我怎样才能实现我的目标? IE。仅在某些情况下验证字段。
最佳答案
这是个老问题了,不过现在好像可以这么搞了:
@Assert\Optional(
@Assert\NotBlank(
message="The name field can't be blank",
groups={"flow_poemDataCollector_step1"}
)
)
引用:http://symfony.com/doc/2.7/reference/constraints/Collection.html
关于php - Symfony2 验证可选字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13135686/