# Verschachtelung von Filtern auf Assoziationen nicht möglich?

**URL:** <https://forum.shopware.com/t/verschachtelung-von-filtern-auf-assoziationen-nicht-moeglich/85954>\
**Category:** Programmierung\
**Created:** [13. März 2021 um 18:59 UTC](https://forum.shopware.com/t/verschachtelung-von-filtern-auf-assoziationen-nicht-moeglich/85954 "2021-03-13T18:59:53Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Moorleiche](https://avatars.discourse-cdn.com/v4/letter/m/6f9a4e/32.png) [@Moorleiche](https://forum.shopware.com/u/Moorleiche)\
**Post date:** [13. März 2021 um 18:59 UTC](https://forum.shopware.com/t/verschachtelung-von-filtern-auf-assoziationen-nicht-moeglich/85954/1 "2021-03-13T18:59:53Z")

</div>

Im Titel ist eigentlich schon alles gesagt. Ich würde vorschlagen, dass man im SW Core der Methode `addAssociation` optional einen Criteria Parameter übergibt. Hier ein Beispiel:

```
    /** Beispiel 1: Ist-Zustand
     * Assoziation `categories` kann nicht = null sein
     * Der Filter der Ergebnisse der Assoziation wird nicht beachtet 
     */
    $criteria = new Criteria();
    $criteria->setLimit(3);
    $criteria->addAssociation('categories');
    $criteria->addFilter(new EqualsAnyFilter('categoryId', $categoryIds));
    $criteria->addFilter(new EqualsFilter('categories.parentId', null));
    $criteria->addFilter(new EqualsFilter('categories.level', 1));
    
    /** Beispiel 2: Soll-Zustand
     * Assoziation `categories` kann = null sein
     * Der Filter der Ergebnisse der Assoziation wird beachtet
     */
    $categoriesCriteria = new Criteria();
    $categoriesCriteria->addFilter(new EqualsFilter('parentId', null));
    $categoriesCriteria->addFilter(new EqualsFilter('level', 1));
    $categoriesCriteria->addSorting(new FieldSorting('name'));
    $criteria = new Criteria();
    $criteria->setLimit(3);
    $criteria->addAssociation('categories', $categoriesCriteria); // Übergabe einer zusätzlichen Criteria theoretisch möglich?
    $criteria->addFilter(new EqualsAnyFilter('categoryId', $categoryIds));
```

---

<div class="post-metadata">

**Author:** ![codezilla](https://avatars.discourse-cdn.com/v4/letter/c/5f9b8f/32.png) [@codezilla](https://forum.shopware.com/u/codezilla)\
**Post date:** [17. Oktober 2022 um 14:57 UTC](https://forum.shopware.com/t/verschachtelung-von-filtern-auf-assoziationen-nicht-moeglich/85954/2 "2022-10-17T14:57:54Z")

</div>

Falls das Thema für jemand anderes relevant sein sollte:

Prinzipiell sollte es möglich sein Filter für Associations folgendermaßen zu erstellen:

```auto
$criteria = new Criteria();
$criteria->addAssociation('categories');
$criteria->getAssociation('categories')->addFilter(new EqualsFilter('parentId', null));

```
