Php 细枝表单输入'choice_widget',如何在选项'ChoiceView'类型标签上应用'transchoices'?
我正在使用SYMFONY 3和TWIG 我的翻译文件[MySymfProject]\MyBundle\Resources\translations\messages.fr.yml中包含以下内容: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
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,就像我在第一期中描述的一样: