Я пробовал много разных подходов (см. Ниже), но не могу найти то, что рекомендует Symfony / Doctrine. Я искал документы и все такое, но безуспешно.
Вот что я подумал:
choices при построении формы. Затем сохранение индекса выбранного элемента в виде целого числа.Конечно, важно также иметь возможность проверить предоставленный выбор (будь то целое число, строка или что-то еще). В настоящее время я полагаюсь на @Assert\Choice, но не уверен, что он идеален.
Вы знаете, где я могу найти помощь / рекомендации по этому вопросу?
Спасибо!
Да, я всегда так делаю :) Но после того, как я делал это в течение многих лет, я всегда задавался вопросом, есть ли лучший способ сохранить выбор выбора. Мой вопрос действительно о рекомендуемом способе сделать это.
Так почему вы спрашиваете, как должна выглядеть ваша сущность на основе вашей формы, вместо того, чтобы спрашивать, как форма должна выглядеть на основе вашей сущности?
Вы правы, мой вопрос, наверное, недостаточно ясен.
Для ограниченного списка вариантов (например, ['Mr', Mrs ']) я обычно использую ваш второй подход: определите варианты выбора в статическом массиве в классе сущности, используйте @Assert\Choice в свойстве сущности для его проверки и используйте array_combine(Entity::choices, Entity::choices) как варианты выбора типа ChoiceType. Таким образом, метка равна ключу и хранится в базе данных. Я думаю, что в этом подходе нет ничего плохого, учитывая, что доктрина не поддерживает настоящие перечисления.






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