# DAL search bringt keine Ergebnisse

**URL:** <https://forum.shopware.com/t/dal-search-bringt-keine-ergebnisse/65158>\
**Category:** Programmierung\
**Created:** [3. März 2020 um 09:51 UTC](https://forum.shopware.com/t/dal-search-bringt-keine-ergebnisse/65158 "2020-03-03T09:51:15Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![derwunner](https://avatars.discourse-cdn.com/v4/letter/d/e5b9ba/32.png) [@derwunner](https://forum.shopware.com/u/derwunner)\
**Post date:** [3. März 2020 um 09:51 UTC](https://forum.shopware.com/t/dal-search-bringt-keine-ergebnisse/65158/1 "2020-03-03T09:51:15Z")

</div>

Hallo,

das&nbsp; Beispiel mit DBAL liefert Ergebnisse:

```
/**
 * @var EntityRepository $repo
 */
$repo = $this->container->get('ws_calendar_user_groups.repository');
$dbal = $this->container->get(Connection::class);
$builder = $dbal->createQueryBuilder();
$builder->select(['cal.id', 'cal.customer_id'])
    ->from('ws_calendar_user_groups', 'cal')
    ->where('cal.customer_id IN(:id)');
$builder->setParameter(':id', hex2bin($customerIds[0]));
$stmt = $builder->execute();
$data = $stmt->fetchAll(\PDO::FETCH_ASSOC);
if (!empty($data)) {
    foreach ($data as $key => $val) {
        foreach ($val as $iKey => $iVal) {
            $data[$key][$iKey] = bin2hex($iVal);
        }
    }
}
var_dump($data);

```

Während hingegen das hier keine Ergebnisse zurück liefert:

```
$criteria = new Criteria($customerIds);
$event = $repo->search($criteria,\Shopware\Core\Framework\Context::createDefaultContext());
$collection = $event->getEntities();
var_dump($collection);

```

Es ist im Prinzip das selbe Beispiel wie hier:&nbsp;[Shopware 6: Reading entities via DAL](https://docs.shopware.com/en/shopware-platform-dev-en/how-to/reading-entities-dal)

Bitte verratet mir, was ich bei der DAL Version falsch gemacht habe.

MFG

derwunner

---

<div class="post-metadata">

**Author:** ![Krispin](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/krispin/32/12849_2.png) [@Krispin](https://forum.shopware.com/u/Krispin)\
**Post date:** [3. März 2020 um 10:00 UTC](https://forum.shopware.com/t/dal-search-bringt-keine-ergebnisse/65158/2 "2020-03-03T10:00:15Z")

</div>

Hi derwunner,

die Variable „$customerIds“ enthält auch CustomerIds und nicht die Ids der „CalenderUserGroup“-Entity, oder?  
Somit sucht das DAL nach den IDs im Repository. Wenn du auf einen anderen Wert filtern möchtest, muss du einen EqualsAny-Filter hinzufügen und dort die CustomerIds abfragen. Dein Fall wäre somit ähnlich wie der letzte Teil der Doku („Reading entities without ID“).

Ich hoffe dies Hilft dir weiter.

Gruß

Krispin

---

<div class="post-metadata">

**Author:** ![derwunner](https://avatars.discourse-cdn.com/v4/letter/d/e5b9ba/32.png) [@derwunner](https://forum.shopware.com/u/derwunner)\
**Post date:** [3. März 2020 um 11:08 UTC](https://forum.shopware.com/t/dal-search-bringt-keine-ergebnisse/65158/3 "2020-03-03T11:08:50Z")

</div>

Hallo @Krispin‍,

ja da habe ich den Zusammehang nicht gesehen. Aber so komnt es auch leer zurück:

```
$criteria = new Criteria();
$criteria->addFilter(
    new EqualsAnyFilter('customerId', $customerIds)
);
$event = $repo->search($criteria, \Shopware\Core\Framework\Context::createDefaultContext());
$collection = $event->getEntities();
var_dump($collection);
die('test');

```

Ich nehme an, dass EqualsAnyFilter das DAL Pendant zu

```
WHERE customer_id IN(...)

```

ist, richtig? Ich habe jedenfalls keinen anderen Filter gefunden.

---

<div class="post-metadata">

**Author:** ![Krispin](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/krispin/32/12849_2.png) [@Krispin](https://forum.shopware.com/u/Krispin)\
**Post date:** [3. März 2020 um 12:30 UTC](https://forum.shopware.com/t/dal-search-bringt-keine-ergebnisse/65158/4 "2020-03-03T12:30:18Z")

</div>

Hi derwunner,

genau, der EqualsAnyFilter ist im DAL so zu sagen der IN-Operator aus SQL.  
Bei deiner Query wäre die Frage: Heißt die Spalte in der DAL-Definition aus so “customerId” und wie sind die UUIDs in “$customerIds” auch in Hex?

Gruß

Krispin

---

<div class="post-metadata">

**Author:** ![derwunner](https://avatars.discourse-cdn.com/v4/letter/d/e5b9ba/32.png) [@derwunner](https://forum.shopware.com/u/derwunner)\
**Post date:** [3. März 2020 um 13:26 UTC](https://forum.shopware.com/t/dal-search-bringt-keine-ergebnisse/65158/5 "2020-03-03T13:26:34Z")

</div>

> [@Krispin schrieb:](https://forum.shopware.com/profile/29825/Krispin "Krispin")
> 
> Bei deiner Query wäre die Frage: Heißt die Spalte in der DAL-Definition aus so „customerId“ und wie sind die UUIDs in „$customerIds“ auch in Hex?

Naja, in der Datenbank BINARY(16), wie überall anders auch. Ich dachte das kann Shopware automatisch umwandeln, wenn man den die Hex Werte gibt? Zum Umwandeln selbst habe ich bisher PHP’s Funktionen hex2bin&nbsp;und bin2hex&nbsp;verwendet, weil Uuid&nbsp;aus DAL auch nichts anderes macht.

---

<div class="post-metadata">

**Author:** ![Krispin](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/krispin/32/12849_2.png) [@Krispin](https://forum.shopware.com/u/Krispin)\
**Post date:** [3. März 2020 um 13:36 UTC](https://forum.shopware.com/t/dal-search-bringt-keine-ergebnisse/65158/6 "2020-03-03T13:36:20Z")

</div>

Hi derwunner,

Hexwerte sind auch richtig, wollte nur sicher gehen, das du dort Hex übergibst und nicht Binary (Wichtig hierbei ist, dass das Hex in LowerCase sein muss, aber das sollte ja bei bin2hex der Fall sein).

Gruß

Krispin
