是否有任何默认方式使Sonata Admin为mysql枚举生成表单字段作为某种选择?单选按钮,选择,等等,即不文本字段,用户可以输入他想要的任何内容?它现在将它们视为字符串,渲染输入文本字段。
我以这种方式定义了我的枚举:
myProperty:
type: enum
length: 10
column: my_property
columnDefinition: ENUM('yeah', 'whatever')
并且它们是“真实的”枚举,即my_property列是数据库中的mySQL枚举类型。
我更喜欢一种解决方案,如果可能的话,不要求我将枚举值硬编码到Sonata的Admin.php文件中......
答案 0 :(得分:2)
我认为最好的方法是使用选择字段,您可以使用从数据库获得的数组提供选择。
这里是example function for codeIgniter,您可以为Symfony2编写相同内容。
因此,在您的管理类中,您可以将字段添加到表单中,如下所示:
$formMapper->add('my_property',
'choice',
array('choices' => MyEnitity::get_enum_values('my_property') );
确保为数组提供键,因为奏鸣曲将使用它们作为值。