0

我尝试像在文档中那样嵌入表单集合,但由于某种未知原因,表单集合没有显示。(表格的其余部分有效)

木质素类型:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('dateFFrais', DateType::class, [
            'widget' => 'single_text',
        ])
        ->add('quantite', IntegerType::class)
        ->add('typeFF', EntityType::class, [
            'class' => TypeFF::class
        ])
        ->add('fraisForfait', CollectionType::class, array(
            'entry_type' => FraisForfaitType::class,
            'allow_add' => true
        ));
}

FraisForfaitType :

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('label')
        ->add('prix')
    ;
}

我的观点 :

...
{% for frais in form.fraisForfait %}
    {{ form_row(frais.label) }}
{% endfor %}

我认为这与它没有任何关系,但这里是实体关系 LigneFf :

 /**
 * @ORM\ManyToOne(targetEntity="App\Entity\FraisForfait", inversedBy="ligneFf")
 */
private $fraisForfait;

弗赖斯福费特:

/**
 * @ORM\OneToMany(targetEntity="App\Entity\LigneFf", mappedBy="fraisForfait")
 */
private $ligneFf;
4

2 回答 2

0

动态表单集合需要一个 javascript 片段才能工作。

如果您只需要查看呈现的字段,则需要将一个或一些子实体添加到控制器中的父实体中,如下所示:

$fraisForfait = new FraisForfait();
$fraisForfait->setLabel(...);
$fraisForfait->setPrix(...);

$ligneFf->getFraisForfait()->add($fraisForfait);

// create the form, and then render it
于 2020-03-13T10:33:46.103 回答
0

你不需要循环你的 CollectionType。

Symfony 将自己处理它:

{{ form_row(form.fraisForfait) }}
于 2020-03-12T10:42:08.520 回答