Выбор формы Symfony2 затрачен по умолчанию - PullRequest
0 голосов
/ 30 марта 2012

Я делаю форму фильтра в symfony2 и я пытаюсь предварительно выбрать несколько полей.

У меня есть два варианта:

$formBuilder->add('first', 'choice',
    array('choices' => $choiceFirst,
    'expanded' => false,
     'multiple' => true,
     'data' => explode(' ', $this->getRequest()->get('first'))
));
$formBuilder->add('second', 'choice',
    array('choices' => $choiceSecond,
    'expanded' => true,
    'multiple' => true,
    'data' => explode(' ', $this->getRequest()->get('second'))));

Для первого варианта, который не расширен, данные, передаваемые по URL, предварительно выбраны. Но не для второго, который расширен.

Есть ли способы предварительно выбрать флажки из поля выбора?

Ответы [ 3 ]

1 голос
/ 30 марта 2012

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

Как: $myEntity->setMyfieldchoice(1);

Таким образом, symfony поймет, что это значение является значением по умолчанию (работает для my в поле select).

Надеюсь, что это поможет!

1 голос
/ 30 апреля 2012

Попробуйте:

$formBuilder->add('first', 'choice',
   array('choices' => array('0' => 'first option', '1' => 'second option'),
   'expanded' => false,
   'multiple' => true,
   'data' => explode(' ', $this->getRequest()->get('first'))
));

И просмотр:

{{ form_widget(form.first.0) }}
{{ form_widget(form.first.1) }}

У меня работает.

1 голос
/ 30 марта 2012

Вы должны предоставить массив выбранных значений в качестве данных для поля с множественным выбором.

изменить: неактуальный ответ, моя ошибка

Попробуйте указать логический массив key =>, поскольку проверенное состояние зависит от логического значения.

Я думаю, вам нужно только поместить проверенное значение в ваш массив, так что те, которые являются истинными;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...