我尝试通过多种选择在我的实体中创建一个状态字段。 我希望该用户可以选择三种状态:“要做”,“完成”和“评论”。 最好的学说类型是什么? 我该如何在选择输入上显示值? 谢谢。
答案 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仅接受这三个值作为可能的值。 最后,您还可以添加一些验证,以确保该字段始终保持有效值。