Php 细枝表单输入'choice_widget',如何在选项'ChoiceView'类型标签上应用'transchoices'?

Php 细枝表单输入'choice_widget',如何在选项'ChoiceView'类型标签上应用'transchoices'?,php,twig,symfony,symfony-forms,Php,Twig,Symfony,Symfony Forms,我正在使用SYMFONY 3和TWIG 我的翻译文件[MySymfProject]\MyBundle\Resources\translations\messages.fr.yml中包含以下内容: MyBundle: label: all_saints: "Toussaint | La Toussaint" bastille_day: "14 juillet | Le 14 juillet" 我希望我的菜单显示不起作用的Toussant,我在菜单中显示Tou

我正在使用SYMFONY 3和TWIG

我的翻译文件[MySymfProject]\MyBundle\Resources\translations\messages.fr.yml中包含以下内容:

MyBundle:
   label:
        all_saints: "Toussaint | La Toussaint"
        bastille_day: "14 juillet | Le 14 juillet"
我希望我的菜单显示不起作用的Toussant,我在菜单中显示Toussant | La Toussant。然后,它应该在另一个有效的字段中显示La Toussaint,使用JS translation bundle,我使用TransChoice函数,选择对应于La Toussaint的索引,用于翻译单词标记all_saints

我已尝试基于{%extends'form\u div\u layout.html.TWIG%}更改细枝模板

然后做一些类似的事情:

{% block form_row  %}

         {% if  (form.vars.block_prefixes.1 == "choice") %}
            {% for choice in form.vars.choices %}
                {% set choice.label = choice.label|transchoice(1) %}
            {% endfor %}

            {% block choice_widget %}
                {{ parent() }}  
            {% endblock %}
        {% endif %}
{% endblock %}
但这不起作用,似乎我不能改变通过细枝中的循环处理的对象的值

有什么想法吗

namespace AppBundle\Form\Type;

use Symfony\Component\Form\AbstractType as BaseAbstractType;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Translation\Translator;

private $translator;

public function __construct(Translator $translator)
{
    $this->translator = $translator;
}


class AbstractType extends BaseAbstractType
{
    public function configureOptions(OptionsResolver $resolver)
    {
        parent::configureOptions();
    }

    public function getParent()
    {
        return BaseAbstractType::class;
    }
}


services:
    app.form.type.abstract:
        class: AppBundle\Form\Type\AbstractType
        arguments:
            - '@translator'
        tags:
            - { name: form.type }

然后你从这个新的AbstractType扩展所有自定义表单

你可以在表单中插入翻译器,并从中调用transchoice方法是的,如果你指的是AbstractType扩展类,我在考虑这个问题。回答我的问题谢谢你的努力,我投了更高的票,因为这是一个很好的解决办法,但它并不是我所期望的有点像意大利面条的解决方案:所以我不会验证它是一个好答案。我相信这些东西应该可以通过细枝修复。如果你删除引号会发生什么?你指的是哪一个引号?所有圣徒:图桑|拉图桑它不会改变任何东西,让我回到广场1,就像我在第一期中描述的一样: