Symfony Вставить коллекцию форм не отображать форму - PullRequest
0 голосов
/ 12 марта 2020

Я пытаюсь встроить коллекцию форм, как в do c, но по неизвестной причине коллекция форм не отображается. (Остальная часть формы работает)

LigneFfType:

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;

FraisForfait:

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

Ответы [ 2 ]

0 голосов
/ 13 марта 2020

Динамическая c коллекция форм требует фрагмента javascript для работы.

Если вам просто нужно увидеть свое поле визуализированным, вам нужно добавить один или несколько дочерних объектов в родительский объект в контроллере вот так:

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

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

// create the form, and then render it
0 голосов
/ 12 марта 2020

Вам не нужно указывать l oop для вашего CollectionType.

Symfony будет обрабатывать его самостоятельно:

{{ form_row(form.fraisForfait) }}
...