Bonjour

J'ai un soucis sur le quelle je suis bloquer depuis plusieurs depuis jours.

Je créer un projet pour que des cinéma diffuse des films avec des horaires.

Le github : https://github.com/xavgdt66/form2datetyme

Film est une entity et Horaire et une entity.

Voici mon Form/HoraireType :

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('heure', TimeType::class, [
            'label' => 'Heure',
            'widget' => 'choice',
            'input' => 'timestamp',
            'with_seconds' => false,
        ]);
}

Mon film form ( qui est pour ma vue )

public function buildForm(FormBuilderInterface $builder, array $options)
   {
       $builder->add('titre');
       $builder->add('horaires', CollectionType::class, [
           'entry_type' => HoraireType::class,
           'allow_add' => true,
           'by_reference' => false,
       ]);
   }

Ma vue twig :

{% block body %}
    <h1>Nouveau film</h1>
    {{ form_start(filmForm) }}

    <div class="form-group">
        {{ form_label(filmForm.titre) }}
        {{ form_widget(filmForm.titre) }}
    </div>

    {% for horaire in filmForm.horaires %}
        <li>{{ form_row(horaire.heure) }}</li>
    {% endfor %}

    <button type="submit" class="btn btn-primary">add</button>

    {{ form_end(filmForm) }}

{% endblock %}

Sur ma vue j'ai cela

https://i.goopics.net/lw8n5e.png

4 réponses


Si ton entité n'a pas d'horaires tu ne verra rien au niveau du formulaire. C'est à toi de créer le bouton qui permet 'ajouter des éléments. Je démontre comment faire dans ce chapitre de la formation Symfony : https://grafikart.fr/tutoriels/symfony-form-nested-2202 (il faudra créer du code JavaScript)

ah cool tu as fait une vidéo sur cela, je vais prendre un abonement pour voir cela et te remercier pour tout ton travail

Également, la propriété 'heure' de ton entité 'Horaire' est de type DateTime, donc demander d'afficher un timestamp :

        'input' => 'timestamp',

Cela te généra une erreur.

d'acc merci