微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

doctrine2 – Symfony2:自定义表单集合中的表单标签

我正在尝试自定义在子表单中生成的表单标签.

我想显示特定游戏周中包含的足球装备,如下所示:

- Fixture 1 : Manchester United (0) - (1) Arsenal
- Fixture 2 : Chelsea (2) - (1) Liverpool
- ...

我的表单显示所有灯具和相关分数,但所有标签都包含数据库名称(score1,score2).我想把团队名称改为.
所以,它目前显示

- Fixture 1 : score1 (0) - (1) score2
- Fixture 2 : score1 (2) - (1) score2
- ...

在控制器中,我生成周形式(WeekType). $week包含使用$week-> getFixtures()的周数据和灯具数据.

控制器/ DefaultController.PHP

$form = $this->createForm(new WeekType(),$week)->createView();

return array(
    'form' => $form,);

表格/ WeekType.PHP

class WeekType extends AbstractType
{
    public function buildForm(FormBuilder $builder,array $options)
    {
        $builder->add('fixtures','collection',array(
            'type' => new FixtureType(),));
    }
 }

Fixture表单添加了2个字段.我想将标签替换为团队名称.
但是我无法以这种形式访问夹具数据. $options为NULL.我以为$options [‘data’]会包含数据……但我错了.

表格/ FixtureType.PHP

class FixtureType extends AbstractType
{  
    public function buildForm(FormBuilder $builder,array $options)
    {
        $builder->add('score1','text',array('label' => **WHAT TO PUT HERE**));
        $builder->add('score2',array('label' => **WHAT TO PUT HERE**));
    }
}

我使用这段代码显示所有灯具,效果很好.

index.html.twig

{% for fixture in week.form.fixtures %}
        {{ form_widget(fixture) }}
    {% endfor %}

也许我可以直接在index.html.twig中自定义我的标签,但是如何获得灯具数据呢?

有人遇到这个问题并解决它吗?

解决方法

我找到了解决方案!

在“index.html.twig”模板中,我迭代了表单元素.
那是一个错误.我只需要迭代灯具并获得相关的表单小部件.

index.html.twig

{% for fixture in week.fixtures %}
    fixture.HomeTeam.name
    {{ form_widget(week.form.fixtures[loop.index0]) }}
    fixture.AwayTeam.name
{% endfor %}

诀窍是直接从表单小部件数组中检索表单元素:

week.form.fixtures[loop.index0]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Mip是什么意思以及作用有哪些
怎么测试Mip页面运行情况
MIP安装的具体步骤有哪些
HTML添加超链接、锚点的方法及作用详解(附视频)
MIP的规则有哪些
Mip轮播图组件中的重要属性讲解
Mip的内联框架组件是什么
怎么创建初始的MIP配置及模板文件
HTML实现多选框及无法提交多数据的原因分析(附视频)
HTML如何设置复选框、单选框以及默认选项?(图文+视频)