簡體   English   中英

表單視圖中的多對多關系symfony 2

[英]many to many relation in a form view symfony 2

我有兩個實體之間的多對多關系。

然后我顯示一個表單,將entityA添加到entityB。 是不是可以添加自定義表單(我的意思是在樹枝視圖中),以便用戶有時可以選擇一個值,有時候多於一個?

當我希望用戶選擇多個值時,我使用它

<select multiple>
{% for entity in entitys %}
<option> 
{{entity.id}}

 </option>
{%endfor%}
</select>

否則這個

 <select >
    {% for entity in entitys %}
    <option> 
    {{entity.id}}

     </option>
    {%endfor%}
    </select>

但現在的問題是如何提交表格。

<button  type="submit"  class="btn btn-info"    value="NEXT STEP " /> 

這是整個表格

<form method="post">
  <select >
    {% for entity in entitys %}
    <option> 
    {{entity.id}}

     </option>
    {%endfor%}
    </select>

<input  type="submit"     /> 

</form>

不再提交表格。 任何想法PLZ?

這是我的整個樹枝視圖

  <h2> STEP {{step}} </h2>
  <form method="post">
<select >
{% for entity in entitys %}
<option value="{{entity.id}}"> 
{{entity.id}}

 </option>
{%endfor%}
</select>

<input  type="submit"  class="btn btn-info"     /> 

</form>
  <br>
  <br>

在你的formbuilder中,你可以添加一些選項,例如我的例子:

目的是將您的字段映射到實體(以設置列表)。 不要忘記向映射實體添加方法_tostring,以使symfony能夠將您的實體表示為select中的文本。

在您的formType中

public function buildForm(FormBuilder $builder, array $options) {
        $id = $this->id;

        $builder->add(
            'addressees',
            'entity',
            array(
                        'class' => 'Pref27\MailBundle\Entity\Addressee',
                        'property' => 'name',
                        'multiple' => true,
                    'expanded' => false,
                        'required' => true,
                        'label' => 'mail.add.theme';
                }
            )
        );
    }

在您的formControler中

$editForm = $this->createForm(new FormType(), $entity);
return array(
            'form'   => $editForm->createView()
        );

在你看來

<form action="{{ path('theControllerActionWitchIsResponsibeOfRecordingIntoDatabase' }}" method="post" {{ form_enctype(edit_form) }}>
        {{ form_widget(edit_form) }}
        <p>
            <button type="submit">Next step</button>
        </p>
</form>

渲染的字段類型取決於多個和已消耗的設置

select tag                                  expanded=false  multiple=false
select tag (with multiple attribute)        expanded=false  multiple=true
radio buttons                               expanded=true   multiple=false
checkboxes                                  expanded=true   multiple=true

您可以在此處找到有關實體類型的更多信息: http//symfony.com/doc/2.0/reference/forms/types/entity.html

編輯:

從您的枝條視圖表單的操作缺少嘗試添加

<form method="post" action="{{ path("theRouteOfYourControllerWitchRecordTheData")}}">

不要忘記添加{{form_rest(form) }}告訴{{form_rest(form) }}添加CSRF令牌

並且不要忘記在select的選項中添加值

<select multiple>
  {% for entity in entitys %}
       <option value="{{entity.id}}">{{entity.name}}</option>
  {%endfor%}
</select>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM