Какой тип данных рекомендует Symfony / Doctrine для сохранения выбора поля ChoiceType?

Я пробовал много разных подходов (см. Ниже), но не могу найти то, что рекомендует Symfony / Doctrine. Я искал документы и все такое, но безуспешно.

Вот что я подумал:

  1. Наличие статического массива с метками для класса сущности и использование его в качестве опций choices при построении формы. Затем сохранение индекса выбранного элемента в виде целого числа.
  2. То же самое, но сопоставление каждой метки со строковым ключом и сохранение ключа.
  3. Использование ENUM, но это не рекомендуется.

Конечно, важно также иметь возможность проверить предоставленный выбор (будь то целое число, строка или что-то еще). В настоящее время я полагаюсь на @Assert\Choice, но не уверен, что он идеален.

Вы знаете, где я могу найти помощь / рекомендации по этому вопросу?

Спасибо!

Похоже, вы начинаете не с той стороны. Сначала создайте сущности, а затем создайте для них формы. Не наоборот. Компонент формы Syfmony достаточно гибкий, чтобы справиться с любым случаем, который вам может понадобиться.

Jakub Matczak 23.11.2018 11:38

Да, я всегда так делаю :) Но после того, как я делал это в течение многих лет, я всегда задавался вопросом, есть ли лучший способ сохранить выбор выбора. Мой вопрос действительно о рекомендуемом способе сделать это.

Quentin 23.11.2018 12:15

Так почему вы спрашиваете, как должна выглядеть ваша сущность на основе вашей формы, вместо того, чтобы спрашивать, как форма должна выглядеть на основе вашей сущности?

Jakub Matczak 23.11.2018 12:17

Вы правы, мой вопрос, наверное, недостаточно ясен.

Quentin 23.11.2018 12:18

Для ограниченного списка вариантов (например, ['Mr', Mrs ']) я обычно использую ваш второй подход: определите варианты выбора в статическом массиве в классе сущности, используйте @Assert\Choice в свойстве сущности для его проверки и используйте array_combine(Entity::choices, Entity::choices) как варианты выбора типа ChoiceType. Таким образом, метка равна ключу и хранится в базе данных. Я думаю, что в этом подходе нет ничего плохого, учитывая, что доктрина не поддерживает настоящие перечисления.

wasinger 23.11.2018 15:42
Стоит ли изучать 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 и хотите разрабатывать...
0
5
67
0

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