2016-02-09 95 views
0

http://symfony.com/doc/current/cookbook/form/form_collections.html單獨渲染主窗體和嵌入窗體?

Symfony2 embedded forms rendering in a twig template

我知道我會如何呈現在個別領域的基礎上兩種形式 - 但我想呈現更多的權宜之計的主要形式和子形式是什麼:

{{ form_start(form) }} 
{{ form_widget(form.base) }} 
{{ form_widget(form.child1) }} 
{{ form_widget(form.child2) }} 
{{ form_end(form) }} 

可能嗎?或者如果我需要這種類型的控制,我是否必須單獨呈現每個字段?

編輯|這裏是我

<div class="box box-primary"> 
        {{ form_start(form) }} 

        <div class="nav-tabs-custom"> 
         <ul class="nav nav-tabs"> 
          <li class="active"><a href="#activity" data-toggle="tab">Master</a></li> 
          <li><a href="#timeline" data-toggle="tab">Stock</a></li> 
         </ul> 
         <div class="tab-content"> 
          <div class="active tab-pane" id="activity"> 
          {{ form_row(form.partNumber) }} 
          {{ form_row(form.partDescription) }} 
          </div> 

          <div class="tab-pane" id="timeline"> 
          {% for stock in form.inventoryStock %} 
           <div>{{ form_widget(stock.onHandQuantity) }}</div> 
           <div>{{ form_widget(stock.batchNumber) }}</div> 
           <div>{{ form_widget(stock.serialNumber) }}</div> 
          {% endfor %} 
          </div> 

         </div> 
        </div>      

        {{ form_end(form) }} 
       </div>     

回答

0

你應該只需要做到這一點:

{{ form_start(form) }} 
    {{ form_widget(form) }} 
{{ form_end(form) }} 

見的Symfony文檔的Rendering the Form部分。只要一切都被正確定義,Symfony就會爲你呈現所有的表單部分,包括嵌入的表單。

您經常需要使用這些功能才能獲得額外的粒度,但這不是必需的。

此外,完全可以做你說的 - 只要試一試,你就會發現你可以。

+0

這就是我現在的樣子 - 我遇到的問題是想要在一個選項卡中呈現主窗體並在另一個選項卡中呈現嵌入窗體 - 因此需要一點HTML調整 - 但我不想手動呈現每個字段的實體可能會更改或可見字段可能會更改。在這個不穩定的狀態期間,symfony渲染表單是獨立的。不知道如何? –

+0

你不能只在每個標籤上呈現每個孩子的小部件嗎? tab1 - '{{form_widget(form.child1)}}',tab2 ...等等。我想我不明白你在找什麼。 –

+0

不確定...您給出的第一個示例呈現整個表單...子表單。我需要在不同的選項卡中呈現太陽表單。所以我在第二個標籤中分別渲染了這些字段。但它們仍然部分呈現在主體中。也許我會在明天上班時發佈我的模板... –