2016-06-21 2 views
0

Я попробовал этот код в моем прутик: некоторые тупые тесты:/Formbuilder 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 расширяет 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> 

Я хочу показать каждому Robopltion в ярлыке и под каждым из них значение Robeoptionsvalue с кнопкой ввода ввода, Любая помощь plz?

ответ

0

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

<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);   

    } 

searchforRobes ($ optionsvalues) ; Является ли функция в репозитории Robe

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