QueryBuilder: Artikel nach zweier Kategorien filtern

Hallo Zusammen,

in einem Kundenprojekt gibt es in Shopware 2 Hauptkategorien: „Kategorien“ und „Systeme“. Unter „Kategorien“ werden die Artikel nach einem normalen Kategoriebaum eingeordnet. Da jedoch jeder Artikel zu einem bestimmten System gehört, muss dieser auch in einer der Unterkategorien von „Systeme“ eingetragen werden. Nachdem der Besucher des Shops später ein System ausgewählt hat, darf Shopware entsprechend nur Artikel anzeigen, die in der gewählten Kategorie sind UND zudem in der entsprechenden „Systeme“ Kategorie. Dies habe ich über Erweiterungen des SearchBundles hinbekommen.

Nun stehe ich jedoch vor einem echten Verständnisproblem.

Hat der Besucher sein System ausgewählt, sollen ihm alle Kategorien für sein System aufgelistet werden. Das heißt: ich benötige eine Liste von allen Unterkategorien von „Kategorien“, jedoch mit einer gefilterten Liste aller enthaltenen Artikel, die wiederum in der entsprechenden „Systeme“ Kategorie vorhanden sind.

Zur Veranschaulichung also in etwa:

$qb = Shopware()->Models()->createQueryBuilder();
$qb
  ->from('Shopware\Models\Category\Category', 'c')
  ->select('c as category, articles as allArticles')
  ->join('c.allArticles', 'articles', 'WITH', 'articles.active = 1 AND articles.allCategories IN (:systemId)');
  ->where('c.parentId = :parent')
  ->setParameter('parent', 114)
  ->setParameter('systemId', 42636);

Leider funktioniert das natürlich vorn und hinten nicht, weil allCategories ja selbst eine Doctrine Collection ist.

Kann mir vielleicht jemand weiterhelfen? Wie kann ich im QueryBuilder alle Kategorien abrufen, deren Artikel sowohl in dieser als auch in einer bestimmten anderen Kategorie sind?

Vielen Dank!
Chris