Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
symfony4:doctrine [2020/04/06 05:01] marclebrun |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Doctrine ====== | ||
- | |||
- | ===== Repository -> lire des entités ===== | ||
- | |||
- | ==== Demander un Repository à Doctrine ==== | ||
- | |||
- | Obtenir un **Repository** pour l'entité **Article** : | ||
- | |||
- | <code php> | ||
- | $repo = $this->getDoctrine()->getRepository(Article::class); | ||
- | </code> | ||
- | |||
- | ==== L'obtenir par injection de dépendance ==== | ||
- | |||
- | Ajouter un paramètre à une méthode d'un contrôleur : | ||
- | |||
- | <code php> | ||
- | use App\Entity\Article; | ||
- | use App\Repository\ArticleRepository; | ||
- | |||
- | public function index(ArticleRepository $repo) { | ||
- | |||
- | } | ||
- | </code> | ||
- | |||
- | ===== Fonctions de recherche d'un Repository ===== | ||
- | |||
- | Rechercher un article selon son **id** : | ||
- | |||
- | <code php> | ||
- | $article = $repo->find(12); | ||
- | </code> | ||
- | |||
- | Rechercher un article selon sa propriété **Title** : | ||
- | |||
- | <code php> | ||
- | $article = $repo->findOneByTitle("Titre de l'article"); | ||
- | </code> | ||
- | |||
- | Rechercher une liste d'articles selon leur propriété **Title** : | ||
- | |||
- | <code php> | ||
- | $articles = $repo->findByTitle("Titre de l'article"); | ||
- | </code> | ||
- | |||
- | Rechercher tous les articles : | ||
- | |||
- | <code php> | ||
- | $articles = $repo->findAll(); | ||
- | </code> | ||
- | |||
- | ===== Entity Manager : écrire des entités ===== | ||
- | |||
- | ==== Obtenir le manager par injection de dépendance ==== | ||
- | |||
- | L'ajouter comme paramètre à une méthode d'un contrôleur : | ||
- | |||
- | <code php> | ||
- | use App\Entity\Article; | ||
- | use Doctrine\ORM\EntityManagerInterface; | ||
- | |||
- | public function create( | ||
- | EntityManagerInterface $manager | ||
- | ) { | ||
- | $article = new Article(); | ||
- | $article | ||
- | ->setTitle("Titre de l'article") | ||
- | ->setContent("Contenu de l'article"); | ||
- | |||
- | $manager->persist($article); | ||
- | $manager->flush(); | ||
- | } | ||
- | </code> | ||