Symfony множественный выбор на поле сущности - PullRequest
0 голосов
/ 17 декабря 2018

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

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Правильное использование 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 будет принимать только эти три значения в качестве возможных значений.Наконец, вы также можете добавить некоторую проверку, чтобы убедиться, что это поле всегда содержит допустимое значение.

0 голосов
/ 17 декабря 2018

Использование 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

...