diff --git a/index.md b/index.md index 8f776daf0a4ac0ba6671d49cd4f80d7330d9ed31..fa318b61f3a1e6214259e79db44a3dad32e598d0 100644 --- a/index.md +++ b/index.md @@ -279,6 +279,35 @@ final class DoctrineGetLatestArticles implements GetLatestArticles Note: - Tout de suite beaucoup plus simple à réimplémenter en elasticsearch +--- +# Les collections + +- elles permettent à Doctrine de repérer les changements +- elles permettent à Doctrine de faire du lazy-loading +- vous pouvez les éviter en type hintant `iterable` et en utilisant un tableau + pour les initialiser. +- si une collection comporte énormément d'éléments, c'est probablement une + relation à faire sauter + +--- +# Faire une jointure avec une relation uni-directionnelle + +```php +$queryBuilder + ->select('a.*') + ->from(Article::class) + ->innerJoin(Comment::class, 'c', Expr\Join::WITH, 'c.article_id = a.id') + ->where("c.content LIKE '%Doctrine%'") + ->getQuery() + ->getResults(); +``` + +Note: +- utile si on a besoin de rajouter des conditions sans nécessiter d'hydrater + des objets de la classe jointe. + + + --- # Emoji test