Я пытаюсь сделать поле статуса в своей сущности с множественным выбором. Я хочу, чтобы у этого пользователя было три варианта статуса: «сделать», «готово» и «проверить». какой тип доктрины лучший? как я могу это сделать, чтобы отобразить значения на выбранном входе? Спасибо.




Используйте ChoiceType:
$form->add('state',ChoiceType::class,[
'choices' => [
0 => 'to do',
1 => 'done',
2 => 'to review',
]
])
Подробнее в документации Symfony: https://symfony.com/doc/current/reference/forms/types/choice.html
Правильное использование ChoiceType - предоставить массив вариантов, где ключ массива - это метка элемента, а значение массива - это значение элемента:
$form->add('state',ChoiceType::class,[
'choices' => [
'To do' => 'to do',
'Done' => 'done',
'To review' => 'to review',
]
]);
Внутри вашего класса сущности ваше поле будет простым строковым полем:
/**
* @ORM\Column(type = "string", length=50)
*/
private $status;
Вы можете пойти дальше, используя Mysql Enums, поскольку есть только три возможных значения, но я считаю, что это ненужные накладные расходы, потому что при создании объекта через форму Symfony будет принимать только эти три значения в качестве возможных значений. Наконец, вы также можете добавить некоторую проверку, чтобы убедиться, что это поле всегда содержит допустимое значение.
Спасибо за Ваш ответ. Но как я могу объявить поле в своем классе сущности с помощью аннотации orm? Это будет простое строковое поле или массив ....!?