1

Sonata Admin に mysql 列挙型のフォーム フィールドを何らかの選択肢として生成させるデフォルトの方法はありますか? ラジオボタン、選択、何でも、つまり、ユーザーが好きなものを入力できるテキストフィールドではありませんか? それらを文字列のように扱い、入力テキスト フィールドをレンダリングします。

私は列挙型をこのように定義しています:

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

これらは「実際の」列挙型です。つまり、my_property 列はデータベース内の mySQL 列挙型です。

可能であれば、Sonata の Admin.php ファイルに enum 値をハードコードする必要のないソリューションを希望します...

4

1 に答える 1

2

それを行う最善の方法は、選択肢フィールドを使用することだと思います。データベースから取得した配列で選択肢を提供できます。

これは codeIgniterのサンプル関数で、Symfony2 にも同じものを書くことができます。

したがって、管理者クラスでは、次のようにフィールドをフォームに追加できます。

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

Sonata はキーを値として使用するため、配列のキーを必ず指定してください。

于 2013-12-03T21:07:12.350 に答える