Hallo zusammen,
ich stehe irgendwie auf dem Schlauch. Ich versuche nach mehreren Tags zu filtern in meinem Frontend Controller (eigenes Model bzw. Definition). Im Backend funktioniert die Zuweisung der Tags ohne Probleme.
Im Frontend Controller mache ich dann das:
$myAndFilters = [];
foreach ($filter as $key => $filt) {
$myAndFilters[] = new EqualsFilter('tags.id', $filt);
}
$criteria->addFilter(new AndFilter($myAndFilters));
Im Prinzip funktioniert das, aber leider nur bei einer Tag ID, sobald mehrere IDs ausgewählt sind, wird kein Ergebnis mehr angezeigt.
Bei Verwendung eines MultiFilter mit CONNECTION_AND passiert das Gleiche.
Für einen Tipp wäre ich sehr dankbar.
Viele Grüße, Jan
Wieso nutzt du nicht den EqualsAnyFilter?
Weil ich damit ja auch nur eine Oder-Verknüpfung hinbekomme. Ich möchte ja alle Einträge finden, denen alle der gesuchten Tags zugeordnet sind, nicht nur der eine oder der andere.
Nicht daran gedacht… schau einfach hier:
Sorry, heute übersehe ich irgendwie alle relevanten Zusatzinformationen.
Verstehe aber nicht ganz, wieso ein MultiFilter nicht funktionieren sollte.
1 Like
Ich denke dein Vorhaben wirst du mit den vorhandenen Filtern nicht umsetzen können.
Problem ist, dass hier immer die gleiche TagId verwendet werden könnte und somit nicht sicher gestellt ist, das alle TagIds überprüft werden.
Du müsstest deine Prüfung in PHP in einem Loop oder ähnliches machen.
1 Like
Oh man, danke für die Tipps, manchmal muss man einfach nur drüber reden 
Eigentlich war es ganz einfach, man darf nicht noch mal eine AND Unterbedingung erstellen, das funktioniert dann nicht, bei mir war es quasi so:
bedingung1 AND (beding2 AND beding3)
Fügt man einfach weitere AND Bedingungen hinzu, funktioniert alles wie gewünscht:
foreach ($filter as $key => $filt) {
$criteria->addFilter(new EqualsFilter('tags.id', $filt));
}
Warum weitere AND Unterbedingungen dann nicht mehr funktionieren, ist mir allerdings trotzdem schleierhaft.