$builder->add('nationality', CountryType::class, array('preferred_choices' => array('ET'),'required' => true,'attr' => array('style' => 'width:300px')))
Он отображает полное имя в поле со списком, но сохраняет инициалы (FR для FRANCE, UG для Уганды, ET для Эфиопии и т. д.)
Ниже приведен исходный код страницы, и он показывает, что значения являются инициалами.
</div><option value = "AF">Afghanistan</option><option value = "AL">Albania</option><option value = "DZ">Algeria</option><option value = "AS">American Samoa</option><option value = "AD">Andorra</option><option value = "AO">Angola</option><option value = "AI">Anguilla</option><option value = "AQ">Antarctica</option><option value = "AG">Antigua & Barbuda</option><option value = "AR">Argentina</option><option value = "AM">Armenia</option><option value = "AW">Aruba</option>
Когда я читаю из базы данных {{student.nationality}}, я получаю инициалы
Как я могу сделать так, чтобы класс CountryType сохранял полное название округов?






Что касается класса CountryType, он будет всегда сохранять значение, используя стандартный двухсимвольный код страны. Это стандартная практика базы данных - хранить только то, что вам нужно, и больше ничего для ссылки на значение. Что вам нужно сделать, так это выполнить поиск в шаблоне того, что означает этот код. Я никогда не кодировал Symfony или Twig, но нашел это в документации:
См .: http://symfony.com/doc/3.4/components/intl.html#country-names
use Symfony\Component\Intl\Intl;
\Locale::setDefault('en');
$countries = Intl::getRegionBundle()->getCountryNames();
// => array('AF' => 'Afghanistan', ...)
$country = Intl::getRegionBundle()->getCountryName('GB');
// => 'United Kingdom'
Спасибо @sholsinger.
Вот решение
public function showAction(Student $student)
{
$deleteForm = $this->createDeleteForm($student);
$Country = Intl::getRegionBundle()->getCountryName($student->getNationality());
return $this->render('student/show.html.twig', array(
'student' => $student,
'delete_form' => $deleteForm->createView(),
'Nationalite' => $Country,
));
}
Он печатает полное название страны в show.html.twig с использованием {{Nationalite}}
Когда я добавил этот компонент, он говорит Максимальное время выполнения. Пробовал несколько раз по-разному, каждый раз с одним и тем же результатом.