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 :

modeliser avec yml cet relation suivant


Sujet :

Symfony PHP

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 77
    Points : 69
    Points
    69
    Par défaut modeliser avec yml cet relation suivant
    soit la table
    Demande:
    demande_id : clé_primaire + auto incrementale
    type : string(10)
    adressedepart : clé_etrangére
    adressearriver : clé_etrangére
    ...(autre champs)

    et la deuxiéme table
    Adresse
    adresse_id : cléprimaire + auto incrementale
    rue : string(10)
    ville : string(10)
    pays : string(10)

    pour les champs adressedepart et adressearriver c'est sont deux identifiant (adresse_id) de deux adresse différent

    mon question comment modéliser cet relation avec le langage YAML


  2. #2
    Membre averti Avatar de sacricri
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Points : 384
    Points
    384
    Par défaut
    Bonjour,

    Il faut que tu spécifies un alias différent pour chaque relation :
    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
    Demande:
      columns:
        type
          type: string(10)
          notnull: true
        adresse_depart_id:
          type: integer
          notnull: true
        adresse_arrivee_id:
          type: integer
          notnull: true
      relations:
        Depart:
          class: Adresse
          onDelete: CASCADE
          local: adresse_depart_id
          foreign: adresse_id
        Arrivee:
          class: Adresse
          onDelete: CASCADE
          local: adresse_arrivee_id
          foreign: adresse_id
    Et après, tu récupères tes infos comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $object->getDepart()->getRue()
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $object->getArrivee()->getVille()

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 77
    Points : 69
    Points
    69
    Par défaut
    merci sacricri ,
    maintenant j'ai généré la formulaire d'jout d'un nouvelle demande
    pour les champ adressedepart et adressearrive j'ai trouvé deux list de choix ,



    pour moi je vais imbrique cet formulaire pour avoir les formulaire d'jout de deux adresse lors de l'ajout du demande
    je pense que vous avez me compris

    j'ai modifier la methode configure du fichier
    lib\form\doctrine\DemandeForm.class.php
    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
     
    class DemandeForm extends BaseDemandeForm
    {
      public function configure()
      {
     
            $adress1= new Adresse(); 
     
    	$adress1= $this->getDepart();
     
    	$formp1 = new AdresseForm($adress1);
     
            $this->embedForm('Adresse depart', $formp1);
      }
    }
     
    mais j'ai toujour une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call to undefined method DemandeForm::getDepart
    comment je peux resoudre ce probleme

  4. #4
    Membre averti Avatar de sacricri
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Points : 384
    Points
    384
    Par défaut
    Si je ne m'abuse, il faut d'abord récupérer l'objet avant de faire un $this :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->getObject()->getDepart();
    Si ça ne marche pas, fait un print_r($this->getObject()) et vois ce qu'il en ressort (c'est lourd mais ça donne souvent une idée)

  5. #5
    Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 77
    Points : 69
    Points
    69
    Par défaut
    sacricri : 1000000000000000000000000000000 merci

    le probleme est resolu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $Adresse1= new Adresse(); 
    	$Adresse1= $this->getObject()->getDepart();
    	$formp1 = new AdresseForm($Adresse1);
    	$this->embedForm('adresse_depart_id', $formp1);
     
    	//recuperation de formulaires de point d'arrive
    	$Adresse2= new Adresse(); 
    	$Adresse2= $this->getObject()->getArrivee();
    	$formp2 = new AdresseForm($Adresse2);
    	$this->embedForm('adresse_arrivee_id', $formp2);
    comme ça j'obtient deux formulaire d'adresse dans la page d'jout de demande
    l'insertion dans la base fonctionne 100%
    aussi bien la modification d'une demande

    que dieu te bénisse sacricri

    je reste en cantact avec vous

  6. #6
    Membre averti Avatar de sacricri
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Points : 384
    Points
    384
    Par défaut
    Hehe, tant mieux

    Tu peux optimiser un peu en faisant ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	$obj = $this->getObject();
            $Adresse1= new Adresse(); 
    	$formp1 = new AdresseForm($obj->getDepart());
    	$this->embedForm('adresse_depart_id', $formp1);
     
    	//recuperation de formulaires de point d'arrive
    	$Adresse2= new Adresse(); 
    	$formp2 = new AdresseForm($obj->getArrivee());
    	$this->embedForm('adresse_arrivee_id', $formp2);
    Mais bon, c'est plus pour la forme hein :p
    Au plaisir de t'aider

Discussions similaires

  1. Saisie de données avec passage à la cellule suivante paramétré
    Par babybell dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 15/06/2009, 20h43
  2. Réponses: 8
    Dernier message: 27/02/2009, 01h37
  3. [Normalisation] problème avec une les relations ternaires
    Par secondechance dans le forum Schéma
    Réponses: 8
    Dernier message: 13/09/2008, 13h35
  4. modelisation avec merise
    Par T'chab dans le forum Access
    Réponses: 1
    Dernier message: 29/05/2006, 13h09
  5. Réponses: 2
    Dernier message: 08/05/2006, 21h08

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