symfony 2 - twig - 如何使用“原型”查看更多(20)字段?

时间:2014-03-11 14:29:16

标签: symfony

我希望使用“prototype”查看20个相同的字段(名称:matchday)。 我有这样的代码:

形式:

   public function buildForm(FormBuilderInterface $builder, array $options)
   {
      $builder
        ->add('matchday', 'collection', array(
            'allow_add' => true,
            'type' => new MatchdayType(),
        ))
   ...
   }

和View(Twig):

<form action="{{ path('meet_create') }}" method="post" {{ form_enctype(form) }}>
 {% for i in 1..20 %}
  {{ form_widget(form.matchday.vars.prototype) }}
{% endfor %}
   <p>
      <button type="submit">Create</button>
   </p>
</form>

但我不知道如何使用“原型”在此代码中使用迭代。

感谢

1 个答案:

答案 0 :(得分:0)

原型只是一个模型,可以用来在表单的集合中创建新字段,但它并不是真正的字段。如果要从头开始显示20个空字段,基本上有两个选择:

  1. 在创建表单
  2. 之前,在控制器的表单对象中添加20个空“matchday”对象
  3. 使用Javascript(jQuery)在客户端视图中添加字段
  4. 第一个解决方案会给出这样的结论:

    $meet = new Meet();
    
    for ($i=0; $i < 20; $i++) {
        $matchday = new MatchDay();
        $meet->getMatchdays->add($matchday);
    }
    
    $form = $this->createForm(new MeetType(), $meet);
    

    对于第二个解决方案,您在Symfony Cookbook中有一个关于表单集合的好例子:http://symfony.com/doc/current/cookbook/form/form_collections.html