У меня есть логическое поле, которое я поставил в виде поля выбора (да или нет). Я бы получил 0 или 1 без трансформатора данных. Я добавил вид BooleanToStringTransformer (который казался разумным):Symfony2 Forms BooleanToStringTransformer Issue
$builder
->add(
$builder->create('myBooleanField', 'choice', array(
'choices' => array(true => 'Yes', false => 'No'),
))
->addViewTransformer(new BooleanToStringTransformer('1'))
)
И когда я пытаюсь отобразить форму, я получаю ошибку «Прогнозный булева.». Мое поле имеет значение false, прежде чем создавать форму.
Я попытался установить его как модельный трансформатор: форма отправлена, но когда я отправлю ее, мое поле объявлено недействительным.
Что я делаю неправильно?
Редактировать: Я почти получил его сейчас.
- Я использовал модель трансформатора вместо того, чтобы вид трансформатора (поле выбора работы со строками или целыми числами, а не булевы)
- Я изменил свой список выбора из
array(true => 'Yes', false => 'No')
вarray('yes' => 'Yes', 'no' => 'No')
Поэтому код теперь выглядит как ->addModelTransformer(new BooleanToStringTransformer('yes'))
Работа трансформации данных, за исключением того, что мое поле всегда установлено в true, независимо от того, какое значение я выбираю.
Что случилось?
Может не булевы значения можно использовать в качестве нормализованных данных? Кстати, BooleanToStringTransformer является частью расширения ядра форм Symfony, я его не реализовал. – Nanocom