Bonjour,

Je cherche à faire un formulaire avec 2 entités différentes. ( 1 entité User & 1 entité Profile )
J'aimerais intégrés des informations dans le formulaire Profile qui se trouvent dans l'entité User. ( ex : Pseudo )

J'ai réussi à le faire mais je ne pense pas que c'est la bonne méthode et je me retrouve aussi avec un problème d'affichage avec Bootstrap. ( doublon. ex : div.form-group)

Ma question est donc existe-t-il une meilleure façon de faire ?
Et est-ce qu'il y a un moyen pour ne pas ce retrouvé avec des doublons de balise HTML de Bootstrap

Méthode utilisé actuellement : around
J’utilise un formulaire ProfileType qui se base sur l'Entity Profile et qui récupère le formulaire UserType qui lui est basé sur l'Entity User mais qui contient seulement le "Pseudo".

Formulaire ProfileType :

<?php

namespace App\Form\User;

use App\Entity\Profile;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Vich\UploaderBundle\Form\Type\VichImageType;

class ProfileType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('firstName')
            ->add('lastName')
            ->add('imageFile', VichImageType::class, [
                'required' => false,
                'download_link' => false,
                'image_uri' => false
            ])
            ->add('description', TextareaType::class, [
                'attr' => [
                    'rows' => 10,
                    'class' => 'input-group'

                ],
                'required' => false
            ]);
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            'data_class' => Profile::class,
        ]);
    }
}

Formulaire UserType :

<?php

namespace App\Form\User;

use App\Entity\User;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;

class UserType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('username', null ,[
            ])
        ;
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            'data_class' => User::class,
            'translation_domain' => 'forms'
        ]);
    }
}

Rendu Bootstrap : ( doublon. ex : div.form-group)

<div class="form-group col-sm">
    <i class="far fa-user-circle prefix"></i>
    <div id="public_information_user">
        <div class="form-group">
            <label for="public_information_user_username" class="required">Nom d'utilisateur</label>
            <input type="text" id="public_information_user_username" name="public_information[user][username]" required="required" maxlength="180" pattern=".{3,}" class="form-control" value="demo">
          </div>
     </div>
</div>

Merci par avance pour vos réponses =)

Aucune réponse