2016-06-10 2 views
-1

Я работаю над проектом, который требует использования компонента формы Symfony, и мне нужно иметь возможность добавлять кандзи для некоторых имен полей. Использование английского языка это работает просто отлично:Японский текст в названиях форм Symfony

$form = $this->createFormBuilder() 
->add('name', TextType::class) 
->add('price', TextType::class) 
->getForm(); 

Когда я пытаюсь назвать какую-либо из полей в японском, хотя, я получаю сообщение об ошибке:

Fatal error: Uncaught exception 'Symfony\Component\Form\Exception\InvalidArgumentException' with message 'The name "名" contains illegal characters. Names should start with a letter, digit or underscore and only contain letters, digits, numbers, underscores ("_"), hyphens ("-") and colons (":"). 

Есть ли способ изменить только отображаемое имя поле?

+0

Используйте [метка] (http://symfony.com/doc/current /reference/forms/types/text.html#label) вместо того, чтобы полагаться на имя поля, чтобы его можно было читать человеком. – Yoshi

ответ

0
$form = $this->createFormBuilder() 
->add('name', TextType::class, [ 
    'label' => '名', 
])->... 

Это должно выполнить задание и использовать файл ресурсов, если вы хотите избежать использования символов, специфичных для языка.

$form = $this->createFormBuilder() 
->add('name', TextType::class, [ 
    'label' => form1.name, 
])->... 

внутри файла ресурсов перевода (например, ресурсы/Справочники/labels.ja.yml) добавить содержание

form1.name: "名" 
Смежные вопросы