我在 buildForm 中有以下代码,我想获得 'report_abuse'
的翻译,但我找不到方法。可能吗?
class AbuseType extends AbstractType
{
// ...
$builder->add('subject', TextType::class, array(
'label' => 'label.subject',
'data' => 'report_abuse',
'disabled' => 'true',
))
// ...
}
最佳答案
尝试显式设置 translation_domain
:
$builder->add('subject', TextType::class, array(
// ...
'translation_domain' => 'messages',
))
您也可以通过将此方法添加到整个 FormType
来执行此操作:
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'translation_domain' => 'messages'
));
}
如果它不起作用,请通过注册将转换器
注入(inject)到您的FormType
中as a service :
# services.yml
services:
app.form.type.abuse:
class: AppBundle\Form\Type\AbuseType
arguments: [ "@translator" ]
tags:
- { name: form.type }
直接调用翻译器:
use Symfony\Component\Translation\TranslatorInterface;
class AbuseType extends AbstractType
{
public function __construct(TranslatorInterface $translator)
{
$this->translator = $translator;
}
// ...
$builder->add('subject', TextType::class, array(
'label' => 'label.subject',
'data' => $this->translator->trans('report_abuse', array(), 'messages'),
'disabled' => 'true',
))
}
关于php - Symfony 如何转换表单中的数据值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36141590/