хорошо, я бегу с symfony 2.7.8. У меня есть абстрактная форма пользователя, в которой я добавил параметр "активный", который, похоже, работает, так как в нем мне нравится указывать, что пользователь активен/неактивен, если захочу.
Однако, когда пользователь настроен на Non-Active (0), он не проверяет этот параметр радио. По умолчанию проверяется, активен ли пользователь (1). Я просто делаю что-то неправильно или что?
Активный раздел "Добавить"
$ActiveState = [0 => 'Non-Active', 1 => 'Active'];
->add('active', 'choice', [
'label' => 'Active State',
'multiple' => false,
'choices' => $ActiveState,
'expanded' => true,
'label_attr' => ['class' =>'Active']
])
И вот как я создаю форму для загрузки пользователя
$User = $this->getDoctrine()
->getRepository('XXXXBundle:Users')
->find($id); <- If i passed in url e.g. /user/ID-HERE
$EditUser = $this->createForm(new UserType(),$User,[
'action' => $this->generateUrl('UserUpdate',['id' => $id]),
'method' => 'PUT'
]);
Когда я выбираю любую из кнопок Радио, он обновит этого пользователя, но только предварительно проверит Active User?
Так что я делаю неправильно?
Все приветствуют, ps. если кто-то хочет, чтобы я опубликовал все функции контроллера или пользовательскую форму, пожалуйста, дайте мне знать.
Благодарю.
У меня была такая же проблема с булевым свойством (false-0 не работает, правда-1 работает). Я добавил трансформатор представлений для этого элемента формы, чтобы он работал правильно.
После ->add(...)
$builder->get('active')->addViewTransformer(new \Symfony\Component\Form\CallbackTransformer(
function ($original) {
return $original ? 1 : 0;
},
function ($submitted) {
return $submitted ? true : false;
}
));