【问题标题】:Formbuilder Symfony2 - Searching by subcategoryFormbuilder Symfony2 - 按子类别搜索
【发布时间】:2016-10-22 19:23:57
【问题描述】:

我已经在我的树枝上尝试过这段代码:一些愚蠢的测试:/

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

我想在标签中显示每个 Robeoption,并在每个选项下方显示其 Robeoptions 值,并带有一个输入复选框按钮,请问有什么帮助吗?

【问题讨论】:

    标签: symfony symfony-forms formbuilder


    【解决方案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);         
    
        }
    

    searchforRobes($optionsvalues);是 Robe Repository 中的一个函数

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-04
      • 1970-01-01
      • 1970-01-01
      • 2015-04-18
      • 2021-12-31
      • 2015-11-08
      • 2018-12-07
      • 1970-01-01
      相关资源
      最近更新 更多