Радиокнопка Symfony 2 Булева проблема?

1

хорошо, я бегу с 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. если кто-то хочет, чтобы я опубликовал все функции контроллера или пользовательскую форму, пожалуйста, дайте мне знать.

Благодарю.

  • 0
    Какой тип установлен для этого поля в отображении свойств?
  • 0
    @Max Макс П. - Вы имеете в виду в ОРМ? Я использую файлы .yml и его значение равно логическому - я думал о том, чтобы попробовать его с помощью целого числа, чтобы выяснить, не является ли это проблемой, но я подумал, что с большей вероятностью это будет с формой?
Теги:
symfony-forms

1 ответ

2
Лучший ответ

У меня была такая же проблема с булевым свойством (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;
    }
));
  • 0
    Плотина, работала без проблем :) - Так вы думаете, это ошибка? С Symfony или с доктриной? Я просто не могу понять, почему они могли неправильно использовать логический элемент? - В любом случае спасибо друг!
  • 1
    О, я не знаю Может быть, это особенность :)
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню