1

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

我的枚举是这样定义的:

myProperty:
    type: enum
    length: 10
    column: my_property
    columnDefinition: ENUM('yeah', 'whatever')

它们是“真正的”枚举,即 my_property 列是数据库中的 mySQL 枚举类型。

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

4

1 回答 1

2

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

这是codeIgniter 的示例函数,您可以为 Symfony2 编写相同的函数。

因此,在您的管理课程中,您可以将您的字段添加到表单中,如下所示:

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

确保为数组提供键,因为奏鸣曲会将它们用作值。

于 2013-12-03T21:07:12.350 回答