Symfony 3.4: Как я могу получить полное название страны в ветке

$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 &amp; Barbuda</option><option value = "AR">Argentina</option><option value = "AM">Armenia</option><option value = "AW">Aruba</option>

Когда я читаю из базы данных {{student.nationality}}, я получаю инициалы

Как я могу сделать так, чтобы класс CountryType сохранял полное название округов?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
1 300
2

Ответы 2

Что касается класса 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'

Когда я добавил этот компонент, он говорит Максимальное время выполнения. Пробовал несколько раз по-разному, каждый раз с одним и тем же результатом.

Yusuf 20.04.2021 06:33

Спасибо @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}}

Другие вопросы по теме