我尝试在实体中创建一个状态字段,并进行多选。我希望用户可以有三种状态选择:"做"、"完成"one_answers"审查"。什么是最好的学说类型?如何在选择输入上显示值?谢谢
ChoiceType的正确用法是提供一个选择数组,其中数组键是项目的标签,数组值是项目的值:
$form->add('state',ChoiceType::class,[
'choices' => [
'To do' => 'to do',
'Done' => 'done',
'To review' => 'to review',
]
]);
在实体类中,您的字段将是一个简单的字符串字段:
/**
* @ORMColumn(type="string", length=50)
*/
private $status;
您可以使用Mysql枚举,因为只有三个可能的值,但我发现这是不必要的开销,因为当通过窗体创建实体时,Symfony只接受这三个值作为可能的值。最后,您还可以添加一些验证,以确保此字段始终包含有效值。
使用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