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 | ||
symfony5:database_repository [2020/04/29 05:54] marclebrun [Fonctions de recherche d'un Repository] |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Repository ====== | ||
- | |||
- | Obtenir un repository par injection de dépendance : | ||
- | |||
- | <code php> | ||
- | use App\Entity\Article; | ||
- | use App\Repository\ArticleRepository; | ||
- | |||
- | class MonControleur extends AbstractControleur | ||
- | { | ||
- | |||
- | public function index(ArticleRepository $repo) { | ||
- | |||
- | } | ||
- | } | ||
- | </code> | ||
- | |||
- | On peut également demander un repository à Doctrine, | ||
- | à partir d'une classe d'entité : | ||
- | |||
- | <code php> | ||
- | $repo = $this->getDoctrine()->getRepository(Article::class); | ||
- | </code> | ||
- | |||
- | ===== Fonctions de recherche d'un Repository ===== | ||
- | |||
- | Rechercher tous les articles : | ||
- | <code php> | ||
- | $articles = $repo->findAll(); | ||
- | </code> | ||
- | |||
- | Rechercher un article selon son **id** : | ||
- | <code php> | ||
- | $article = $repo->find(12); | ||
- | </code> | ||
- | |||
- | Rechercher tous les articles avec un ordre de tri : | ||
- | <code php> | ||
- | $articles = $repo->findBy( | ||
- | [], | ||
- | [ | ||
- | 'rangee' => 'ASC', | ||
- | 'case' => 'DESC' | ||
- | ] | ||
- | ); | ||
- | </code> | ||
- | |||
- | Rechercher un article selon un critère et un ordre de tri : | ||
- | <code php> | ||
- | $articles = $repo->findBy( | ||
- | [ | ||
- | 'numEtagere' => 'C26' | ||
- | ], | ||
- | [ | ||
- | 'rangee' => 'ASC', | ||
- | 'case' => 'DESC' | ||
- | ] | ||
- | ); | ||
- | </code> | ||
- | |||
- | On peut aussi ne pas mettre de critères, cela équivaut à un **findAll()** | ||
- | auquel on a ajouté un ordre de tri : | ||
- | <code php> | ||
- | $articles = $repo->findBy( | ||
- | [], | ||
- | [ | ||
- | 'rangee' => 'ASC', | ||
- | 'case' => 'DESC' | ||
- | ] | ||
- | ); | ||
- | </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> | ||