Конструктор форм Symfony2 - Поиск по подкатегории

Я пробовал этот код в своей ветке: некоторые глупые тесты:/

<form class="form-horizontal" id="form-search" action="{{path('search_robe')}}" method="POST" enctype="multipart/form-data">

     {% for robeoption in robeoptions %}
                {% if robeoption.values|length>0 %}
                    <div class="col-md-3 col-sm-3 col-xs-3 ">
                        <div class="Robeoption-title">
                            {{robeoption.translate.title}} 
                        </div>
                        <div class="Robeoption-value">
                            {% for robeoptionval in robeoption.values %}
                                <label>
        <input type="checkbox" class="radio" value="1" name="{{robeoption.translate.title}}" />{{robeoptionval.translate.title}}</label>

                            {% endfor %}
                        </div>
                    </div>
                {% endif %}
            {% endfor %}
</form>

У меня есть этот код в моем классе типа формы SearchrobeType extends AbstractType {

/**
 * @param FormBuilderInterface $builder
 * @param array $options
 */
public function buildForm(FormBuilderInterface $builder, array $options) {
    $builder
            ->add('robeoptions', 'entity', array(
                'required' => false,
                'class' => 'BrainAdminBundle:RobeOption',
                /** @Ignore */
                'query_builder' => function(EntityRepository $er) {
                    return $er->createQueryBuilder('s')
                    ->Join('s.values', 'values')
                    ->groupBy('s.id');
                },
                'label' => true,
                'multiple' => true,
                'expanded' => true,

            ))
            ->add('robeoptionvalue', 'entity', array(
                'required' => false,
                'class' => 'BrainAdminBundle:RobeOptionValue',
                /** @Ignore */
                'label' => false,
                'multiple' => true,
                'expanded' => true,

            ))
    ;
}

Итак, дело в том, что у меня есть две сущности: robeoption и robeoptionvalues, которые имеют отношение oneTomany, я новичок в Symfony и хочу использовать formBuilder в своей ветке, поэтому вместо этого будет что-то вроде этого:

<form class="form-horizontal" id="form-search" action="{{path('search_robe')}}" method="POST" enctype="multipart/form-data">

   {{form_widget(form.robeoptions)}}  //
        {{form_widget(form.robeoptionvalue)}}

</form>

Я хочу показать каждый Robeoption в метке, а под каждым значением Robeoptions с кнопкой ввода флажка. Любая помощь, пожалуйста?


person řĕĕ ňă    schedule 21.06.2016    source источник


Ответы (1)


Есть только один способ сделать это: сделать это динамически из моей ветки `

 <form class="form-horizontal col-md-12 col-sm-12 col-xs-12" id="form-search" action="{{path('searchrobe')}}" method="POST" enctype="multipart/form-data">

    <div class="sh" style="display:none;"> 
    {{form_row(form._token)}}
    <div class="col-md-12 col-sm-6 search-slide">

        {% for robeoption in robeoptions %}
            {% if robeoption.values|length>0 %}
                <div class="col-md-4 col-sm-4 col-xs-4 ">
                    <div class="Robeoption-title">
                        <label> {{robeoption.translate.title}} </label>
                    </div>
                    <div class="Robeoption-value">
                        {% for robeoptionval in robeoption.values %}

                                <input type="checkbox" name="robeoptionValues[{{robeoptionval.id}}]" />{{robeoptionval.translate.title}}<br>

                        {% endfor %}
                    </div>
                </div>

            {% endif %}

        {% endfor %}

    </div>

    <div class="col-md-12 col-sm-12 search-slide">
        <div class="col-md-12 col-sm-12 contour">
            <button class="btn btn-default btn-slider">{{'search'|trans({})}}</button>
        </div>
    </div>
</div>
</form>

И затем получить массив опций от контроллера

if ($_request->getMethod() == 'POST') {

        $optionsvalues=$_request->request->get('robeoptionValues');
        $robe = $_em->getRepository('BrainAdminBundle:Robe')->searchforRobes($optionsvalues);         

    }

поискмантий($optionsvalues); Является функцией в Robe Repository

person řĕĕ ňă    schedule 29.06.2016