QueryBuilder: Zusatzinfos von Artikeln auslesen

Gude! Ich habe folgendes SQL Query, welches ich gerne mit dem QueryBuilder umsetzen würde: $sql= "SELECT DISTINCT s\_articles.id, releasedate, img, extension, price " . "FROM s\_articles, s\_articles\_details, s\_articles\_img, s\_articles\_prices " . "WHERE s\_articles.id = s\_articles\_details.articleID " . "AND s\_articles.id = s\_articles\_img.articleID ". "AND s\_articles.id = s\_articles\_prices.articleID ". "AND s\_articles.active = 1 ". "ORDER BY releasedate DESC"; Jetzt stehe ich aber irgendwie auf dem Schlauch. Ich habe bisher Folgendes: $builder = Shopware()-\>Models()-\>createQueryBuilder(); $builder-\>select(array('articles')) -\>from('Shopware\Models\Article\Article', 'articles') -\>andWhere('articles.active = :active'); $builder-\>setParameter('active', 1); Wie komme ich jetzt aber an die ganzen Produktbilder, Zusatzinfos etc. ran? Ich dachte der QueryBuilder gibt mir alle Infos zu den Artikeln mit raus … Viele Grüße, Patrick

Schau mal in das repository vom Artikel model - da findest du nicht nur “fertige” builder, sondern auch jede Menge Beispiele. Viele Grüße

1 „Gefällt mir“

Ok … das hat eigentlich schon alle meine Fragen beantwortet. Danke :slight_smile: Werd das heute Abend kurz ausprobieren und meine Lösung posten!

Hab’s jetzt halbwegs geschafft. Das Ganze sieht so aus: $articleRepo = Shopware()-\>Models()-\>getRepository("Shopware\Models\Article\Article"); $articles = $articleRepo-\>createQueryBuilder(array('articles', 'mainDetail', 'prices', 'tax', 'images', 'links', 'linkAttribute', 'imageAttribute', 'propertyValues' )) -\>from('Shopware\Models\Article\Article', 'articles') -\>leftJoin('articles.mainDetail', 'mainDetail') -\>innerJoin('mainDetail.prices', 'prices') -\>leftJoin('articles.tax', 'tax') -\>leftJoin('articles.images', 'images') -\>leftJoin('articles.links', 'links') -\>leftJoin('links.attribute', 'linkAttribute') -\>leftJoin('images.attribute', 'imageAttribute') -\>leftJoin('articles.propertyValues', 'propertyValues') -\>where('articles.active = :active') -\>andWhere('images.parentId IS NULL') -\>addOrderBy('mainDetail.releaseDate', 'DESC') -\>setMaxResults('5') -\>setParameter('active',1) -\>getQuery() -\>getArrayResult();