Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
code:php:symfony2:doctrine [12/11/2015 18:06]
elisabeth [Pour créer la base de données]
code:php:symfony2:doctrine [15/06/2018 22:22] (Version actuelle)
Ligne 1: Ligne 1:
 +{{htmlmetatags>​metatag-robots=(index,​follow) metatag-author=(Elisabeth Pointal) metatag-keywords=(doctrine) metatag-description=(Gérer ses entités avec doctrine)}}
 ====== Doctrine ====== ====== Doctrine ======
 ===== Création d'une entité ===== ===== Création d'une entité =====
Ligne 17: Ligne 18:
 ==== Pour l'​entité ==== ==== Pour l'​entité ====
  
-<code php>+<sxh php; first-line:​0;​ title: Entity Chose>
 namespace Machin\TrucBundle\Entity;​ namespace Machin\TrucBundle\Entity;​
  
Ligne 30: Ligne 31:
 class Chose class Chose
 { {
-</code>+</sxh>
 ====  Paramètres des champs/​column ==== ====  Paramètres des champs/​column ====
 <​note>​L'​ensemble des types possibles est:  string, integer, smallint, bigint, boolean, decimal, datetime, time, text, object, array, float.</​note>​ <​note>​L'​ensemble des types possibles est:  string, integer, smallint, bigint, boolean, decimal, datetime, time, text, object, array, float.</​note>​
-<code php>+<sxh php; first-line:​15;​ title: Entity Chose.php>
     /**     /**
      * @var integer      * @var integer
Ligne 56: Ligne 57:
      */      */
     private $size;     private $size;
-</code>+</sxh>
 ==== Relation et JoinColumn ==== ==== Relation et JoinColumn ====
 === Paramètres === === Paramètres ===
Ligne 76: Ligne 77:
 === OneToOne Unidirectionnel === === OneToOne Unidirectionnel ===
 Par exemple, on a un Client auquel est lié une Carte. ​ Par exemple, on a un Client auquel est lié une Carte. ​
-<code php>+<sxh php; first-line:​0;​ title: Client.php>
 class Client class Client
 { {
Ligne 90: Ligne 91:
         $this->​carte = $carte;         $this->​carte = $carte;
      }      }
-</code>+</sxh>
 === OneToOne Bidirectionnel === === OneToOne Bidirectionnel ===
  ​C'​est bidirectionnel,​ mais c'est bien dans la table Client qu'on enregistre l"​id"​ de la carte.  ​C'​est bidirectionnel,​ mais c'est bien dans la table Client qu'on enregistre l"​id"​ de la carte.
-<code php>+<sxh php; first-line:​0;​ title: Client.php>
 /* /*
  * @ORM\Entity(name="​client"​)  * @ORM\Entity(name="​client"​)
Ligne 115: Ligne 116:
      }      }
  }  }
 +</​sxh>​ 
 +Et côté carte : 
 +<sxh php; first-line:​0;​ title:​Carte.php>​
 /* /*
  * @ORM\Entity(name="​carte"​)  * @ORM\Entity(name="​carte"​)
Ligne 131: Ligne 134:
      }      }
  }  }
-</code>+</sxh>
 === OneToMany et ManyToOne === === OneToMany et ManyToOne ===
 Cette fois-ci,le client peut avoir plusieurs cartes, mais c'est dans la table carte qu'on enregistre l'id du client! Cette fois-ci,le client peut avoir plusieurs cartes, mais c'est dans la table carte qu'on enregistre l'id du client!
 Et c'est bi-directionnel. Et c'est bi-directionnel.
-<code php>+<sxh php; first-line:​0;​ title: Client.php>
 /* /*
  * @ORM\Entity(name="​client"​)  * @ORM\Entity(name="​client"​)
Ligne 166: Ligne 169:
            
  }  }
 +</​sxh>​ 
 +Et côté carte 
 +<sxh php; first-line:​0;​ title: Carte.php>​
 /* /*
  * @ORM\Entity(name="​carte"​)  * @ORM\Entity(name="​carte"​)
Ligne 183: Ligne 188:
      }      }
  }  }
-</code>+</sxh>
 === ManyToMany === === ManyToMany ===
 Par exemple des Livres et des Auteurs. On a donc une table de liaison livres_auteurs. Par exemple des Livres et des Auteurs. On a donc une table de liaison livres_auteurs.
-<code php>+<sxh php; first-line:​0;​ title: Auteur.php>
 /* /*
  * @ORM\Entity(name="​auteur"​)  * @ORM\Entity(name="​auteur"​)
Ligne 203: Ligne 208:
  
  }  }
 +</​sxh>​ 
 +<sxh php; first-line:​0;​ title: Livre.php>​
 /* /*
  * @ORM\Entity(name="​livre"​)  * @ORM\Entity(name="​livre"​)
Ligne 220: Ligne 226:
      }      }
  }  }
-</code>+</sxh>
 === Autres === === Autres ===
 On peut faire plein d'​autres liaisons, des liaisons d'une entités sur elle-même. On peut faire plein d'​autres liaisons, des liaisons d'une entités sur elle-même.
Ligne 229: Ligne 235:
 <note important> ​ Voir aussi le paramétrage pour la base de données [[code:​php:​symfony2:​parametre#​parametre.yml|paramétrages de Symfony2]]</​note>​ <note important> ​ Voir aussi le paramétrage pour la base de données [[code:​php:​symfony2:​parametre#​parametre.yml|paramétrages de Symfony2]]</​note>​
 <​code>​php app/console doctrine:​database:​create</​code>​ <​code>​php app/console doctrine:​database:​create</​code>​
-==== Pour voir la/les requêtes SQL qui créé/modifie la base ====+==== Pour voir la/les requêtes SQL qui crée/modifie la base ====
  
 <​code>​php app/console doctrine:​schema:​update --dump-sql</​code>​ <​code>​php app/console doctrine:​schema:​update --dump-sql</​code>​