[英]Symfony2: collection form field type with data-prototype
我有一個團隊,我想添加玩家(玩家的對象)。 我已正確設置表單“類型”類。 這是我的觀點的相關部分:
{% for index, player in form.players %}
<div id="template" data-prototype="{{ form_widget(form.players.get('prototype')) | e }}">
<span class="title">{{ index }}</span>
{{ form_row(player.name) }}
</div>
{% endfor %}
我的問題是data-prototype屬性不包含span標記; 它只包含{{ form_row(player.name) }}
的輸出。 有沒有辦法在data-prototype
屬性中包含div#template
的全部內容?
這也困擾着我。 我定制了一個字段類型,甚至制作了簡單的表單類型,減少了字段集(對於更復雜的對象),但它感覺不對。 我想出了一個應該做的訣竅:)
首先 - 我認為你的<div id="team" data-prototype="...">
應該在你的循環之外。
接下來,您的原型只是一個表單視圖對象,因此如果將其傳遞給模板,您可以手動渲染字段並自定義輸出。 注意:autoescape對包含的內容沒有影響,因此請使用“過濾器轉義”。
<div id="playerFields" data-prototype="{% filter escape %}{% include 'AcmeTeamBundle:Team:prototypePlayer.html.twig' with {'form': form.players.get('prototype')} %}{% endfilter %}">
然后在prototypePlayer.html.twig中,只需像往常一樣在表單視圖中渲染每個字段。
<div>
<span class="title">{{ form_label(form.name) }}</span>
{{ form_row(form.name) }}
<span class="age">{{ form_label(form.age) }}</span>
{{ form_row(form.age) }}
{# render whatever else you like from your Form/PlayerType class... #}
<div>
我的模板與您的問題有不同的數據結構,但它應該有幫助:)
干杯,
克里斯
從Symfony 2.1開始,不推薦使用.get()
,以上內容不起作用。 更換form.players.get('prototype')
與form.players.vars.prototype
在以后的版本的Symfony來解決這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.