Symfony SonataAdmin:为枚举生成表单字段?

Symfony SonataAdmin:为枚举生成表单字段?,symfony,php-5.3,sonata-admin,Symfony,Php 5.3,Sonata Admin,有没有默认的方法让Sonata Admin为mysql枚举生成表单字段作为某种选择?单选按钮,选择,无论什么,即不是一个文本字段,用户可以输入任何他想要的?它现在将它们视为字符串,呈现输入文本字段 我的枚举是这样定义的: myProperty: type: enum length: 10 column: my_property columnDefinition: ENUM('yeah', 'whatever') 它们是“真实”枚举,即数据库中的my_属性列是my

有没有默认的方法让Sonata Admin为mysql枚举生成表单字段作为某种选择?单选按钮,选择,无论什么,即不是一个文本字段,用户可以输入任何他想要的?它现在将它们视为字符串,呈现输入文本字段

我的枚举是这样定义的:

myProperty:
    type: enum
    length: 10
    column: my_property
    columnDefinition: ENUM('yeah', 'whatever')
它们是“真实”枚举,即数据库中的my_属性列是mySQL枚举类型


我更喜欢一个不需要我将枚举值硬编码到Sonata的Admin.php文件中的解决方案,如果可能的话…

我认为最好的方法是使用一个选择字段,您可以使用从数据库获得的数组提供选择

下面是一个示例,您可以为Symfony2编写相同的示例

因此,在admin类中,您可以将字段添加到表单中,如下所示:

    $formMapper->add('my_property',
                'choice',
                 array('choices' => MyEnitity::get_enum_values('my_property') );

请确保为阵列提供键,因为sonata会将它们用作值。

如果有人将此示例翻译为实际的Symfony代码,会不会很好:DSorry我已经多年没有使用Symfony了:)