symfony表格嵌入其他表格,如何达到form_errors/validation.message
symfony form embeding other forms, how to reach form_errors/validation.message
我在 Symfony3 上遇到问题,无法显示带有嵌入其他表单的表单的 {{ form_errors([formname.field]) }} 消息。
我在 GitHub 上删除了一个 symfony 项目来解释我的问题:
https://github.com/nyluje/symfony_test_form_embedded
您会在其中找到:
- \src\AppBundle\Controller\DefaultController.php修改为显示
测试。
- 在 \src\AppBundle\Entity\ 下有两个实体:EntityForFormA 和
EntityForFromB 使用 "field1" EmailType.
创建
- 在\src\AppBundle\Form下:3个表单文件; 2 直接相关
EntityForFormA 和 EntityForFormB:FormAType 和 FormBType,以及
最后一个 FormCType 可以将两者嵌入到一种形式中。
在文件的顶部 \app\Resources\default\index。hmtl.twig:
{{ form_start(form_a) }}
{{ form_label(form_a.field1) }}
{{ form_widget(form_a.field1) }}
{{ form_errors(form_a.field1) }}
{{ form_end(form_a) }}
{{ form_start(form_c) }}
{{ form_label(form_c.FormA.field1) }}
{{ form_widget(form_c.FormA.field1) }}
{{ form_errors(form_c.FormA.field1) }}
{{ form_label(form_c.FormB.field1) }}
{{ form_widget(form_c.FormB.field1) }}
{{ form_errors(form_c.FormB.field1) }}
{{ form_end(form_c) }}
如果您使用值 "j@j" 提交表单 A,您将得到:
错误信息 "This value is not a valid email address" 清晰显示。
现在,如果您在两个字段中提交值为 "j@j" 的表单 C:
不显示错误信息"This value is not a valid email address"。
有谁知道为什么在 FormC 的情况下不显示错误消息?
默认情况下,验证不会遍历对象或集合的属性。使用 valid constraint:
http://symfony.com/doc/current/reference/constraints/Valid.html
您也可以为集合设置遍历选项。
我在 Symfony3 上遇到问题,无法显示带有嵌入其他表单的表单的 {{ form_errors([formname.field]) }} 消息。
我在 GitHub 上删除了一个 symfony 项目来解释我的问题: https://github.com/nyluje/symfony_test_form_embedded
您会在其中找到:
- \src\AppBundle\Controller\DefaultController.php修改为显示 测试。
- 在 \src\AppBundle\Entity\ 下有两个实体:EntityForFormA 和 EntityForFromB 使用 "field1" EmailType. 创建
- 在\src\AppBundle\Form下:3个表单文件; 2 直接相关 EntityForFormA 和 EntityForFormB:FormAType 和 FormBType,以及 最后一个 FormCType 可以将两者嵌入到一种形式中。
在文件的顶部 \app\Resources\default\index。hmtl.twig:
{{ form_start(form_a) }}
{{ form_label(form_a.field1) }}
{{ form_widget(form_a.field1) }}
{{ form_errors(form_a.field1) }}
{{ form_end(form_a) }}
{{ form_start(form_c) }}
{{ form_label(form_c.FormA.field1) }}
{{ form_widget(form_c.FormA.field1) }}
{{ form_errors(form_c.FormA.field1) }}
{{ form_label(form_c.FormB.field1) }}
{{ form_widget(form_c.FormB.field1) }}
{{ form_errors(form_c.FormB.field1) }}
{{ form_end(form_c) }}
如果您使用值 "j@j" 提交表单 A,您将得到:
现在,如果您在两个字段中提交值为 "j@j" 的表单 C:
不显示错误信息"This value is not a valid email address"。
有谁知道为什么在 FormC 的情况下不显示错误消息?
默认情况下,验证不会遍历对象或集合的属性。使用 valid constraint:
http://symfony.com/doc/current/reference/constraints/Valid.html
您也可以为集合设置遍历选项。