在版本< 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>
答案 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%}
希望能有所帮助。