IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Création de formulaire ManyToOne [2.x]


Sujet :

Symfony PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2013
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Création de formulaire ManyToOne
    Bonsoir à tous,

    Etant débutant sur Symfony2, je tourne en rond sur un problème et j'aimerai avoir vos avis.

    J'ai 2 entités (Voyage et Itineraire (route en anglais)) reliées entre elles par une relation OneToMany (Un voyage est composé de plusieurs itinéraires)
    Voici leur classse en résumé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    class OswRoute
    {
     
        /**
         * @var \OswTravel
         *
         * @ORM\ManyToOne(targetEntity="OswTravel", inversedBy="routes")
         * @ORM\JoinColumn(name="OswTravel_id", referencedColumnName="id", nullable=false, onDelete="CASCADE"))
         */
        private $travel;
     
       /**
         * Set travel
         *
         * @param \Opensworld\SiteBundle\Entity\OswTravel $travel
         * @return OswRoute
         */
     
        public function setTravel(OswTravel $travel)
        {
            $this->travel = $travel;
     
            return $this;
        }
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    class OswTravel
    {
        /**
         * @ORM\OneToMany(targetEntity="OswRoute", mappedBy="travel")
         */
        private $routes;
     
        public function __construct()
        {
            $this->routes = new \Doctrine\Common\Collections\ArrayCollection();
        }
    }
    Et le formulaire de création d'un itinéraire relatif à un voyage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public function buildForm(FormBuilderInterface $builder, array $options){
            $builder
                ->add('addressGmaps')
                ->add('latitude')
                ->add('title')
                ->add('detail')
                ->add('position')
                /*->add('travel')*/
            ;
        }
    Le soucis, c'est que je n'arrive pas à passer en parametre l'entité du voyage lors de la génération de ce formulaire. Si je décommente ->add('travel') je peux sélectionner un voyage mais comme la création d'un itinéraire est toujours relative au voyage en cours d'édition, j'aimerai grâce à son id renseigner l'entité itineraire.

    J'ai fait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $em = $this->getDoctrine()->getManager();
    $travel = $em->getRepository('OpensworldSiteBundle:OswTravel')->find($id);
    $entity = new OswRoute();
    $entity.setTravel($entity); //ligne 52
    $form = $this->createCreateForm($entity, $idparent);
    mais ça génère cette erreur :
    UndefinedFunctionException: Attempted to call function "setTravel" from namespace "Opensworld\SiteBundle\Controller" in D:\wamp\www\opensworld_new\src\Opensworld\SiteBundle\Controller\OswRouteController.php line 52.

    Merci d'avance à celui qui éclairera ma lanterne.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 168
    Points : 219
    Points
    219
    Par défaut
    t'as mis un point

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $entity.setTravel($entity); //ligne 52
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $entity->setTravel($entity); //ligne 52

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2013
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Ro la la!!! les vieilles habitudes de l'actionscript ça!
    En tout cas merci beaucoup, j'ai du m'absenter aujourd'hui et il me reste très peu de temps pour boucler des devs. Quel bonheur de pouvoir passer à autre chose ce soir.
    Tu m'enlèves une sacré épine du pied et comme j'ai la tête dans le guidon j'aurai pu tourner à côté encore un moment...

    Bonne soirée!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création de formulaire en VBA - Plantage
    Par Shansson dans le forum Access
    Réponses: 2
    Dernier message: 18/04/2006, 15h48
  2. Programme de création de formulaire
    Par krfa1 dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 11/04/2006, 12h38
  3. Réponses: 2
    Dernier message: 29/12/2005, 01h03
  4. Librairie pour création de formulaires
    Par mathk dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 21/12/2005, 16h40
  5. création de formulaire forms6
    Par dahu29 dans le forum Reports
    Réponses: 22
    Dernier message: 26/07/2005, 13h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo