gpt4 book ai didi

php - Symfony2 : collection form field type with data-prototype

转载 作者:IT王子 更新时间:2023-10-29 00:21:22 27 4
gpt4 key购买 nike

我有一个团队,我想向其中添加球员(球员的对象)。我已经正确设置了表单“类型”类。这是我观点的相关部分:

{% 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) }} 的输出。有没有办法将 div#template 的全部内容包含在 data-prototype 属性中?

最佳答案

这也困扰着我。我定制了一个字段类型,甚至制作了带有简化字段集的简单表单类型(用于更复杂的对象),但感觉不对。我想出了一个应该可以解决问题的解决方案:)

首先 - 我认为你的 <div id="team" data-prototype="...">应该在你的循环之外。

接下来,您的原型(prototype)只是一个表单 View 对象,因此如果您将它传递给模板,您可以手动呈现字段并自定义输出。注意:自动转义对包含的内容没有影响,因此请使用“过滤器转义”。

<div id="playerFields" data-prototype="{% filter escape %}{% include 'AcmeTeamBundle:Team:prototypePlayer.html.twig' with {'form': form.players.get('prototype')} %}{% endfilter %}">

然后在您的 prototypePlayer.html.twig 中,像通常在表单 View 中一样呈现每个字段。

<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 中修复此问题。

关于php - Symfony2 : collection form field type with data-prototype,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8488831/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com