翻译后的占位符值未拉入 Symfony 4 表单字段

Posted

技术标签:

【中文标题】翻译后的占位符值未拉入 Symfony 4 表单字段【英文标题】:Translated placeholder value not pulling through to Symfony 4 form field 【发布时间】:2022-01-01 14:35:09 【问题描述】:
% trans_default_domain "admin" %

% form_theme leadForm _self %

 form_row(leadForm.phonenumber) 

我的表单域定义为:

    $builder
        ->add('phonenumber', TextType::class, [
            'label' => false, 
            'required' => true,
            'constraints' => [
                new NotBlank(),
            ],
            'attr' => [
                'placeholder' => 'change.lead_form.placeholders.phonenumber'
            ]
        ])

我正在设置翻译域:

/**
 * @param OptionsResolver $resolver
 */
public function configureOptions(OptionsResolver $resolver)

    $resolver->setDefaults([
        'translation_domain' => 'admin',
    ]);

admin.en.yml 包括以下内容:

change:
    lead_form:
        placeholders:
            phonenumber: Required

但是,当我在表单定义中设置占位符时,它不会显示。如果我在 Twig 中使用attr 属性,我可以将其拉入,但我宁愿在表单定义中这样做。

【问题讨论】:

【参考方案1】:

我在the documentation 中显然错过了这一点,但看起来“attr”在最新版本的 Symfony 中被删除了。

这将在 Symfony 4 中工作。

        $builder
            ->add('phonenumber', TextType::class, [
                'label' => false,
                'required' => true,
                'constraints' => [
                    new NotBlank(),
                ],
                'placeholder' => 'change.lead_form.placeholders.phonenumber'
            ])

【讨论】:

以上是关于翻译后的占位符值未拉入 Symfony 4 表单字段的主要内容,如果未能解决你的问题,请参考以下文章

用点击的 span 标签的 innerHTML 替换占位符值

占位符值从右侧而不是左侧开始写入?

文本框的占位符值不会更改为原始值?

用 pom.xml 中的值替换占位符名称

如何使用 CSS 设置占位符值?

在 iOS 中输入日期占位符值