Symfony2:不推荐使用FormView替换吗?

时间:2013-08-07 23:04:27

标签: php symfony twig

在版本< 2.3,属性

data-prototype="{% filter escape %}{% include 'ManaClientBundle:Member:member_prototype.html.twig' with {'form': form.members.get('prototype')} %}{% endfilter %}"

允许原型显示为一行单元格。当然,在2.3中,这一行会产生错误

  

方法"得到" for object" Symfony \ Component \ Form \ FormView"才不是   存在

根据UPGRADE-2.1.md, get 已弃用。它不能被建议的 vars 替换,因为它会产生类似的错误。我怎样才能(轻松?)像以前一样在2.3中渲染原型?使用

data-prototype="{{ form_widget(form.members.vars.prototype)|e }}"
无论twig:resources:form in config.yml中的div或table设置如何,

都不提供有用的解决方案。

原型

<tr id="member-form">
<td><input class="smallform" type="radio" name="household[isHead]" value="__name__"></td>
<td>{{ form_widget(form.include, {'attr': {'class':'smallform'}}) }}</td>
<td>{{ form_widget(form.fname, {'attr': {'class':'smallform'}}) }}</td>
<td>{{ form_widget(form.sname, {'attr': {'class':'smallform'}}) }}</td>
<td>{{ form_widget(form.dob, {'attr': {'class':'smallform'}}) }}</td>
<td>{{ form_widget(form.sex, {'attr': {'class':'smallform'}}) }}</td>
<td>{{ form_widget(form.ethnicity, {'attr': {'class':'smallform'}}) }}</td>
<td><a id="removeTr" class="smallbutton" href="#" onclick="removeTr(this)">Remove</a>

2 个答案:

答案 0 :(得分:11)

form.members.get('prototype')替换为form.members.vars.prototype

本来可以更清楚地做什么,但是只有无数的猴子找到了解决方案。

答案 1 :(得分:1)

在扩展阻止时,以上对我不起作用。 至少在2.3.7中,我能够访问变量,如:

{%block form_row%} {{form.vars.value}} ..... {%endblock%}

当一个ArrayCollection像:

{%block sonata_type_collection_widget%}     {%for form in form%}         {{child.vars.form.vars.value.name}}     {%endfor%} {%endblock%}

希望能有所帮助。