Partage
  • Partager sur Facebook
  • Partager sur Twitter

Formulaires sur plusieurs entités

Sujet résolu
    21 septembre 2018 à 16:23:13

    Bonjour,

    voilà j’ai un souci, je tente de faire un formulaire avec 7 entités dessus, certaines sont reliées directement à l'entité du formulaire principal et d'autres non. Je coince encore sur une qui est en "double" sur ma base et que l'utilisateur rentrera manuellement, ça c'est le 1er pb mais pas le plus grave. A l'heure actuelle, quand je créé 1 intervention, j'ai ça au final:

    vous comprendrez que ce n'est pas ce que je cherche à faire. Là en gros il me fait toutes les possibilités avec ce qu'il y a en base. En somme, si je cerne bien le problème, il ne prend pas juste le libellé choisi.

    Donc comment faire pour qu'il prenne juste le libellé choisi? Désolée si la question est conne, mais je suis novice en php et je rame un peu j'avoue.

    <?php
    
    namespace GestionBundle\Form;
    
    use Symfony\Bridge\Doctrine\Form\Type\EntityType;
    use Symfony\Component\Form\AbstractType;
    use Symfony\Component\Form\FormBuilderInterface;
    use Symfony\Component\OptionsResolver\OptionsResolver;
    
    class InterventionType extends AbstractType
    {
        /**
         * {@inheritdoc}
         */
        public function buildForm(FormBuilderInterface $builder, array $options)
        {
            $builder->add('technician', EntityType::class, ['class' => 'GestionBundle\Entity\Technician', 'placeholder' => 'Sélectionnez un technicien', 'mapped' => false, 'multiple' => false, 'required' => true])
                    ->add('kindWork')
                    ->add('groupplace', EntityType::class, ['class' => 'GestionBundle\Entity\GroupPlace', 'placeholder' => 'Sélectionnez un groupe', 'mapped' => false, 'multiple' => false, 'required' => false])
                    ->add('place', EntityType::class, ['class' => 'GestionBundle\Entity\Place', 'placeholder' => 'Sélectionnez un lieu', 'mapped' => false, 'multiple' => false, 'required' => false])
                    ->add('interventionDate')
                    ->add('weekNumber')
                    ->add('numberHours')
                    ->add('comments')
                    ->add('typeIntervention')
    //                ->add('materialCost', EntityType::class, ['class' => 'GestionBundle\Entity\MaterialCost', 'placeholder' => 'Insérer un coût matériel', 
    //                    'mapped' => false, 'multiple' => false, 'required' => false])
    //                ->add('materialCost', MaterialCostType::class, array('mapped' => false, 'required' => false))    
    //               ->add('materialCost', MaterialCostType::class)
                    ;
        }/**
         * {@inheritdoc}
         */
        public function configureOptions(OptionsResolver $resolver)
        {
            $resolver->setDefaults(array(
                'data_class' => 'GestionBundle\Entity\Intervention'
            ));
        }
    
        /**
         * {@inheritdoc}
         */
        public function getBlockPrefix()
        {
            return 'gestionbundle_intervention';
        }
    
    
    }
    
    <?php
    
    namespace GestionBundle\Entity;
    
    use Doctrine\Common\Collections\ArrayCollection;
    use GestionBundle\Entity\KindWork;
    use GestionBundle\Entity\TypeIntervention;
    use Symfony\Component\Validator\Constraints\DateTime;
    use Doctrine\ORM\Mapping as ORM;
    
    /**
     * Intervention
     *
     * @ORM\Table(name="intervention")
     * @ORM\Entity(repositoryClass="GestionBundle\Repository\InterventionRepository")
     */
    class Intervention
    {
        /**
         * @var int
         *
         * @ORM\Column(name="id", type="integer")
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="AUTO")
         */
        private $id;
    
        /**
         * @var DateTime
         *
         * @ORM\Column(name="intervention_date", type="date")
         */
        private $interventionDate;
    
        /**
         * @var int
         *
         * @ORM\Column(name="week_number", type="smallint")
         */
        private $weekNumber;
    
        /**
         * @var float
         *
         * @ORM\Column(name="number_hours", type="float")
         */
        private $numberHours;
    
        /**
         * @var string
         *
         * @ORM\Column(name="comments", type="text", nullable=true)
         */
        private $comments;
        
          /**
         * @ORM\OneToMany(targetEntity="KindWork", mappedBy="intervention")
         */
        private $kindWork;
    
        /**
         *
         * @ORM\ManyToOne(targetEntity="TypeIntervention", inversedBy="intervention")
         * 
         */
        private $typeIntervention;
    
        /**
         * Constructor/Constructeur
         */
        public function __construct() {
            $this->kindWork = new ArrayCollection();
           
        }
        
        /**
         * Get id
         *
         * @return int
         */
        public function getId()
        {
            return $this->id;
        }
    
        /**
         * Set interventionDate
         *
         * @param DateTime $interventionDate
         *
         * @return Intervention
         */
        public function setInterventionDate($interventionDate)
        {
            $this->interventionDate = $interventionDate;
    
            return $this;
        }
    
        /**
         * Get interventionDate
         *
         * @return DateTime
         */
        public function getInterventionDate()
        {
            return $this->interventionDate;
        }
    
        /**
         * Set weekNumber
         *
         * @param integer $weekNumber
         *
         * @return Intervention
         */
        public function setWeekNumber($weekNumber)
        {
            $this->weekNumber = $weekNumber;
    
            return $this;
        }
    
        /**
         * Get weekNumber
         *
         * @return int
         */
        public function getWeekNumber()
        {
            return $this->weekNumber;
        }
    
        /**
         * Set numberHours
         *
         * @param float $numberHours
         *
         * @return Intervention
         */
        public function setNumberHours($numberHours)
        {
            $this->numberHours = $numberHours;
    
            return $this;
        }
    
        /**
         * Get numberHours
         *
         * @return float
         */
        public function getNumberHours()
        {
            return $this->numberHours;
        }
    
        /**
         * Set comments
         *
         * @param string $comments
         *
         * @return Intervention
         */
        public function setComments($comments)
        {
            $this->comments = $comments;
    
            return $this;
        }
    
        /**
         * Get comments
         *
         * @return string
         */
        public function getComments()
        {
            return $this->comments;
        }
        
        public function setKindWork($kindWork) {
            $this->kindWork = $kindWork;
        }
    
        public function setTypeIntervention($typeIntervention) {
            $this->typeIntervention = $typeIntervention;
        }
        
        public function getKindWork() {
            return $this->kindWork;
        }
    
        public function getTypeIntervention() {
            return $this->typeIntervention;
        }
        
        /**
         * toString method/Méthode toString
         */
        public function __toString() {
        if(is_null($this->comments)) {
            return '';
        }    
        return $this->comments;
     }
        
        
    }
    
    

    Ce à quoi ça ressemble à l'heure actuelle ( oui ce n'est pas terrible pour le moment!)

    Merci d'avance



    • Partager sur Facebook
    • Partager sur Twitter
      21 septembre 2018 à 16:34:53

      je vais te donner un mauvais conseil, mais un conseil  quand même.

      Parfois, il faut passer symfony et faire ses formulaires à la main et les traiter à la main.

      lorsqu'on mélange une paire d'enitity, symfony c'est ok, mais audela...

      • Partager sur Facebook
      • Partager sur Twitter
        21 septembre 2018 à 16:43:44

        Certes mais même "à la main", je ne vois pas plus comment m'en sortir.
        • Partager sur Facebook
        • Partager sur Twitter
          23 septembre 2018 à 17:54:06

          Petit Up! Personne n'a une idée?
          • Partager sur Facebook
          • Partager sur Twitter
            24 septembre 2018 à 8:43:00

            si tu ne sais pas faire un formulaire en html et l'envoyer en php, je ne peux rien pour toi.

            https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/913099-transmettre-des-donnees-avec-les-formulaires

            • Partager sur Facebook
            • Partager sur Twitter
              26 septembre 2018 à 7:32:49

              Problème réglé! Je suis juste blonde, une erreur dans ma requête, mon formulaire insère tout à fait correctement. Désolée d'être novice, apparemment c'est mal vu... J'ai fait 8 jours de php y a des mois, alors je fais ce que je peux.
              • Partager sur Facebook
              • Partager sur Twitter

              Formulaires sur plusieurs entités

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown