2012-03-30 2 views
0

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

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

ответ

1

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

редактировать: не имеет значение ответ, моя ошибка

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

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

+0

Это то, что я делаю. Я даю оба массива, и данные кажутся хорошими, потому что если я задал расширение: false, данные будут выбраны в списке. Моя проблема заключается в том, что при расширении поля данные не выбраны. – user1014102

+0

Извините, я сделал путаницу между расширенными и множественными. Я удаляю свой ответ, который не имеет значения ... – AlterPHP

+0

Нет, это потому, что значение get является строкой, а мои значения флажка - int. Итак, мои предыдущие данные выглядят так: array (707 => '707) И теперь: array (707 => 707) – user1014102

1

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

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

Таким образом, Symfony будет понять это значение является значением по умолчанию (работал для моего на поле выбора).

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

1

Try:

$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) }} 

Для меня работает.

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