Symfony实体领域的多项选择

时间:2018-12-17 17:25:58

标签: symfony doctrine-orm symfony4

我尝试通过多种选择在我的实体中创建一个状态字段。 我希望该用户可以选择三种状态:“要做”,“完成”和“评论”。 最好的学说类型是什么? 我该如何在选择输入上显示值? 谢谢。

2 个答案:

答案 0 :(得分:0)

使用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

答案 1 :(得分:0)

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仅接受这三个值作为可能的值。 最后,您还可以添加一些验证,以确保该字段始终保持有效值。