====== Doctrine ======
===== Repository : lire des entités =====
==== Demander un Repository à Doctrine ====
Obtenir un **Repository** pour l'entité **Article** :
$repo = $this->getDoctrine()->getRepository(Article::class);
==== L'obtenir par injection de dépendance ====
Ajouter un paramètre à une méthode d'un contrôleur :
use App\Entity\Article;
use App\Repository\ArticleRepository;
public function index(ArticleRepository $repo) {
}
==== Fonctions de recherche d'un Repository ====
Rechercher tous les articles :
$articles = $repo->findAll();
Rechercher un article selon son **id** :
$article = $repo->find(12);
Rechercher tous les articles avec un ordre de tri :
$articles = $repo->findBy(
[],
[
'rangee' => 'ASC',
'case' => 'DESC'
]
);
Rechercher un article selon un critère et un ordre de tri :
$articles = $repo->findBy(
['numEtagere' => 'C26'],
[
'rangee' => 'ASC',
'case' => 'DESC'
]
);
Rechercher un article selon sa propriété **Title** :
$article = $repo->findOneByTitle("Titre de l'article");
Rechercher une liste d'articles selon leur propriété **Title** :
$articles = $repo->findByTitle("Titre de l'article");
===== 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 :
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();
}