【发布时间】:2011-11-25 05:21:28
【问题描述】:
自从无数天以来,我一直在阻止 Symfony 2 和表单的问题。
我得到了网站实体的一种形式。 “网站”是网站实体的集合,每个网站包含两个属性:“类型”和“网址”。
如果我想在我的数据库中添加更多网站,我可以单击“添加另一个网站”链接,这会在我的表单中添加另一个网站行。因此,当您点击提交按钮时,您可以同时添加一个或 X 个网站。
这个添加一行的过程使用了data-prototype属性,可以生成网站子表单。
问题是我自定义了我的表单以具有出色的图形渲染......就像这样:
<div class="informations_widget">{{ form_widget(website.type.code) }}</div>
<div class="informations_error">{{ form_errors(website.type) }}</div>
<div class="informations_widget">{{ form_widget(website.url) }}</div>
<div class="informations_error">{{ form_errors(website.url) }}</div>
但是 data-prototype 并不关心这种自定义,它带有 HTML 和 CSS 标签和属性。我保留 Symfony 渲染:
<div>
<label class=" required">$$name$$</label>
<div id="jobcast_profilebundle_websitestype_websites_$$name$$">
<div>
<label class=" required">Type</label>
<div id="jobcast_profilebundle_websitestype_websites_$$name$$_type">
<div>
<label for="jobcast_profilebundle_websitestype_websites_$$name$$_type_code" class=" required">label</label>
<select id="jobcast_profilebundle_websitestype_websites_$$name$$_type_code" name="jobcast_profilebundle_websitestype[websites][$$name$$][type][code]" required="required">
<option value="WEB-OTHER">Autre</option>
<option value="WEB-RSS">Flux RSS</option>
...
</select>
</div>
</div>
</div>
<div>
<label for="jobcast_profilebundle_websitestype_websites_$$name$$_url" class=" required">Adresse</label>
<input type="url" id="jobcast_profilebundle_websitestype_websites_$$name$$_url" name="jobcast_profilebundle_websitestype[websites][$$name$$][url]" required="required" value="" />
</div>
</div>
</div>
有没有人有想法来做这个黑客?
【问题讨论】:
标签: forms collections symfony