【问题标题】:SonataAdmin: generate form fields for enum?SonataAdmin:为枚举生成表单字段?
【发布时间】:2013-06-20 12:17:58
【问题描述】:

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

我的枚举是这样定义的:

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

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

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

【问题讨论】:

    标签: symfony php-5.3 sonata-admin


    【解决方案1】:

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

    这是example function for codeIgniter,您可以为 Symfony2 编写相同的代码。

    因此,在您的管理类中,您可以像这样将字段添加到表单中:

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

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

    【讨论】:

    • 如果有人用实际的 Symfony 代码翻译这个例子会不会很好:D
    • 对不起,我好几年没用过 Symfony 了 :)
    猜你喜欢
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多