国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > 数据库 > access > Conditional validation on Symfony2 fom checkbox widget

Conditional validation on Symfony2 fom checkbox widget

来源:程序员人生   发布时间:2014-09-23 15:57:22 阅读次数:2542次

这几天做symfony,遇到一个情形:

有两行checkbox,Row1: Checkbox A, Row2: Checkbox X, Y, Z

当A选中的时候,X,Y,Z必须至少有一个被选中。当A没有选中的时候,X,Y,Z disable。


Disable用jquery很容易实现,做validation却花了挺久,具体为:

在Row2的Form里面加上constraints

'constraints' => array( new AssertCount( array( 'min' => 1, 'minMessage' => 'Please select at least one' )), )
这里min说明至少要选中一个,minMessage提供错误提示。但这里问题是当CheckboxA没有选中的时候一直提示Row2不能为空。


为了增加判断何时做这个validation,增加了一个constant VALIDATION_GROUP并赋予Row2。

'groups' => static::VALIDATION_GROUP,

同时,在setDefaultOptions里面加入这个group

'validation_groups' => function (FormInterface $form) { if ($form->get('checkboxA')->getData() == false) { return false; } else return static::VALIDATION_GROUP; },
当checkboxA没有选中的时候不做任何validation,当选中的时候增加至少选择一项的限制。


大功告成!

生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生