首页 > 解决方案 > Symfony 3.4 + FOSUserBundle 为新的自定义字段添加错误消息

问题描述

我在 UserEntity 中创建了一个新的自定义字段,因此创建了一个带有错误消息的 Assert-Validation。此消息可以{{ form_errors(form) }}全局显示,但我还没有找到一种方法来显示链接到该字段的错误消息而不覆盖整个 form_theme。

{{ form_errors(form.field_name) }}也不起作用

标签: phpformssymfonyfosuserbundle

解决方案


FOSUserBundle 自己映射错误。

我的问题是 FormType 中的字段名称拼写错误。它应该与实体中的变量名称完全匹配

实体

/**
 * Some Comment
 *
 * @ORM\Column(name="field_name", type="array", nullable=true)
 * @Assert\NotBlank(message = "Please select at least one field_name")
 */
protected $fieldName; // Entity variable name

表单类型

    $builder->add(
        'fieldName', // Needs to match Entity variable name
        ChoiceType::class,
        array(
            'choices' => array(
                'Some Choice' => '1',
                'Other Choice' => '2',
                '3rd Choice' => '3',
            ),
            'label' => 'form.register.fieldname',
            'translation_domain' => 'user',
            'multiple' => true,
            'expanded' => true,
            'required' => true,
        )
    );

推荐阅读