Symfony Forms中的动态验证组-通过侦听器或默认选项


Dynamic validation groups in Symfony Forms - via listener or defaultoptions?

我有一个表单,它接受username、password和category_id(并将其存储到Doctrine"User"实体中)。它在数据库中创建了一个帐户,我使用验证器根据需要检查所有内容。现在我想扩展这个表单,这样我就可以支持Facebook和Twitter登录(可能还有其他登录),所以我创建了一个新的实体UserLoginExternal,它将持有一个令牌和一个令牌提供商。当用户提交FB登录表单时,他们会提交username、category_id、token和provider。我在验证器中创建了两个验证组-register和register_without_password,但我找不到一种有效的方法来根据是否提交令牌字段在FormType中切换它。

你能给我指一下Symfony文档中的位置吗?在那里我可以找到关于它的信息并举例说明。我阅读了表单类型中的侦听器,但我无法访问那里的请求以查看是否提交了令牌字段。

如果您想保留一个表单,则必须根据提交的数据切换验证组。Symfony框架提供了使用回调的功能。

您可以在Symfony文档中找到更多相关信息:http://symfony.com/doc/current/book/forms.html#groups-基于提交的数据