2013-06-20 2 views
1

Есть ли способ по умолчанию, чтобы заставить Sonata Admin генерировать поля формы для перечислений mysql как выбор какого-то рода? Радиокнопки, выберите, что угодно, т. Е. не текстовое поле, где пользователь может ввести все, что захочет? Теперь он обрабатывает их как строки, предоставляя текстовое поле ввода.SonataAdmin: сгенерировать поля формы для перечисления?

У меня есть мои перечисления определяются следующим образом:

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

и они «настоящие» перечисления, т.е. столбец my_property имеет MySql перечислимого типа в базе данных.

Я предпочел бы решение, которое не требует, чтобы я жёстко значения перечислений в файл admin.php Сонаты, если это возможно ...

ответ

3

Я думаю, что лучший способ сделать это с помощью поля выбора и вы можете предоставить выбор с помощью массива, который вы получаете из баз данных.

Вот example function for codeIgniter, и вы можете написать то же самое для Symfony2.

Так что в вашем классе администратора вы можете добавить поле в форме, как это:

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

Убедитесь предоставить ключи для массива, поскольку соната будет использовать их как в качестве значений.

Смежные вопросы