是否有可能验证只存在的形式领域..
例如,我有一个declarationForm,我给规则在validation.yml 3个字段:姓名,参考,commantary ..有时我不加入我的建设者评论领域。 反正当我验证表单它说,评论不能为空(但没有现场解说)
是否有可能验证只存在的形式领域..
例如,我有一个declarationForm,我给规则在validation.yml 3个字段:姓名,参考,commantary ..有时我不加入我的建设者评论领域。 反正当我验证表单它说,评论不能为空(但没有现场解说)
是的,但你将不得不删除NotBlank
从条件validation.yml
的commentary
字段并添加要求回当你包括在你的建设者FormBuilderInterface
:
$builder
// ... other fields using add()
->add('commentary', 'text', array(
'required' => true,
))
;
但是请注意,这确实只是添加HTML5 required
属性都将input
与label
标签。
较好的解决得益于@Cerad是验证组添加到您的validation.yml
的领域:
AcmeBundle\Entity\Declaration: # change to your entity class
properties:
# ...
commentary:
- NotBlank: { groups: [commentaryReq] }
然后使用表单生成与该验证组,在需要的时候:
$form = $this->createFormBuilder($declaration, array(
'validation_groups' => array('commentaryReq'),
))
//->add(...)
;
或者,如果你使用表单类:
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'validation_groups' => array('commentaryReq'),
));
}
您还可以指定根据提交的数据组或指定基于该被点击的按钮组是否有帮助。
如果你想允许空commentary
字段,添加nullable=true
在你的实体的列定义:
http://doctrine-orm.readthedocs.org/en/latest/reference/annotations-reference.html#column
http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/basic-mapping.html#property-mapping