Symfony2 Forms: создание флажков - PullRequest
2 голосов
/ 27 февраля 2012

В настоящее время у меня есть форма, которая генерирует выпадающий список из моей категории-сущности:

        $builder
            ->add('category', 'entity',
                    array('class' => 'TrackerMembersBundle:Category',
                            'property' => 'title',));

Теперь я хочу вместо этого создать флажки, где я могу выбрать более одной опции ... Я искал документацию по symfony2, но не смог найти простой способ сделать это прямо из моей идеи Entity.Any?

Ответы [ 3 ]

11 голосов
/ 27 февраля 2012

Добавление 'multiple' => true к массиву опций (последний, где класс и свойство) дает вам возможность множественного выбора.

Затем вы можете переопределить блок choice_widget, используя из заголовка .

Примерно так может работать:

{% block choice_widget %}
{% spaceless %}
    {% for choice, label in choices %}
        <label>
            <input type="checkbox" value="{{ choice }}"{% if _form_is_choice_selected(form, choice) %} selected="selected"{% endif %}>
            {{ label|trans }}
        </label>
    {% endfor %}
{% endspaceless %}
{% endblock choice_widget %}
10 голосов
/ 27 февраля 2012

Поскольку у EntityType есть родительский элемент ChoiceType, вы можете использовать любую опцию типа choice.

В вашем случае при настройке поля category следующим образом будут отображаться флажки:

$builder
    ->add('category', 'entity', array(
        'class' => 'TrackerMembersBundle:Category',
        'property' => 'title',
        'multiple' => true,
        'expanded' => true,
    )
);

Обратите внимание на использование multiple AND expanded в опциях.

0 голосов
/ 27 февраля 2012

Попробуйте

       $builder
        ->add('category', 'checkbox',
                array('class' => 'TrackerMembersBundle:Category',
                        'property' => 'title',));#

http://symfony.com/doc/current/reference/forms/types/checkbox.html

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