Php 嵌入表单集合

Php 嵌入表单集合,php,symfony,Php,Symfony,我有一个实体游戏和一个实体玩家,每个游戏有3名玩家 我想知道如何在GameTpe中嵌入PlayerType三次,然后在form.twig中显示它们,而不使用javascript 游戏类型 class GameType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('name', 'text',

我有一个实体游戏和一个实体玩家,每个游戏有3名玩家

我想知道如何在GameTpe中嵌入PlayerType三次,然后在form.twig中显示它们,而不使用javascript

游戏类型

class GameType extends AbstractType
{
  public function buildForm(FormBuilderInterface $builder, array $options)
  {
  $builder
    ->add('name', 'text', array('required' => true))
    ->add('description', 'text',  array('required' => true))
    ->add('date', 'date', array('required' => true)) 

    ->add('players',  new PlayerType()); //how to embed playerType 3 times
  }
class PlayerType extends AbstractType
{
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
  $builder
    ->add('name', 'texet', array('required' => true))
    ->add('age', 'integer',  array('required' => true));
    //............

}
播放器类型

class GameType extends AbstractType
{
  public function buildForm(FormBuilderInterface $builder, array $options)
  {
  $builder
    ->add('name', 'text', array('required' => true))
    ->add('description', 'text',  array('required' => true))
    ->add('date', 'date', array('required' => true)) 

    ->add('players',  new PlayerType()); //how to embed playerType 3 times
  }
class PlayerType extends AbstractType
{
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
  $builder
    ->add('name', 'texet', array('required' => true))
    ->add('age', 'integer',  array('required' => true));
    //............

}
形成小枝

<form method="post" action="" >

        {{ form_widget(form.name) }}

        {{ form_widget(form.description) }}

        {{ form_widget(form.date) }}

    // how to display this form 3 times

        {{ form_widget(form.players) }}

    <input type="submit" class="btn btn-primary" />
</form>

{{form_小部件(form.name)}
{{form_小部件(form.description)}
{{form_小部件(form.date)}
//如何显示此表单3次
{{form_小部件(form.players)}

如果您的游戏总是有三名玩家,为什么不在游戏实体中添加三个字段


例如,使用getter来收集它们。

你认为这是最好的解决方案吗?不,但你说你不想使用JS;)对不起,我错了。那个解决方案行不通。你可以试试这个。你想使用一个表单集合:然后简单地将三个玩家实体添加到你的游戏实体中。