Tach zusammen,
ich steh gerade auf den Schlauch um mir das richtigen Criteria-Query zusammen zu bauen.
Ich habe Einträge, die einem Product zugewiesen werden.
Jeder Eintrag hat zugewiesene Items, die ich aktivieren kann.
Die aktiven Items sollen mir ausgegeben werden.
Allerdings bekomme ich alle Items mit folgender Anweisung ausgeliefert:
$criteria = (new Criteria())
->addAssociation('items')
->addFilter(
new MultiFilter(
MultiFilter::CONNECTION_AND,
[
new EqualsFilter('productId', $productId),
new EqualsFilter('active', true)
]
)
)->addFilter(new EqualsFilter('items.active', true));
Ausgabe:
[40a2bfe139294d62b936cca33de61515] => MyPlugin\Core\Content\MyPlugin\MyPluginEntity Object
(
[id:protected] => 40a2bfe139294d62b936cca33de61515
[productId:protected] => 9e435c96978e41a28ab228e89dd7a687
[active:protected] => 1
...
[items:protected] => MyPlugin\Core\Content\MyPlugin\Aggregate\MyPluginItems\MyPluginItemsCollection Object
(
[elements:protected] => Array
(
[0fe0902d7ce049b7b3978e96032e9b9d] => MyPlugin\Core\Content\MyPlugin\Aggregate\MyPluginItems\MyPluginItemsEntity Object
(
[id:protected] => 0fe0902d7ce049b7b3978e96032e9b9d
[mypluginId:protected] => 40a2bfe139294d62b936cca33de61515
[title:protected] => lorem
[active:protected] =>
[text] => ipsum
...
)
[23e3a89280084c449aaf192d1817e0b8] => MyPlugin\Core\Content\MyPlugin\Aggregate\MyPluginItems\MyPluginItemsEntity Object
(
[id:protected] => 23e3a89280084c449aaf192d1817e0b8
[mypluginId:protected] => 40a2bfe139294d62b936cca33de61515
[title:protected] => lorem
[active:protected] => 1
[text] => ipsum
..
)
...
)
...
)
...
)
Die „MyPluginItemsCollection“ enthält inaktive Items, die ich nicht haben will.
Klar könnte ich das im Template wieder abfangen, aber eine saubere SQL Anweisung sollte doch möglich sein!?
Hat jemand einen Tipp für mich, danke.