Hallo zusammen!
Ich habe mal eine Frage zum Verständnis, womöglich sehe ich den Wald vor lauter Bäumen nicht!?
In einer extension gibt es zwei Abfragen wie folgt nur mit unterschiedlichen Parametern:
$constraints[] = $query->logicalAnd(
$query->equals('foo.bar', $wert),
$query->greaterThan('foo.baz', $wert2)
);
Beide Abfragen funktionieren einzeln einwandfrei.
Wenn ich nun die Ergebnisse von Abfrage 1 und Abfrage 2 kombinieren möchte, so daß ich alle Ergebnisse gleichzeitig bekomme, kann ich diese doch mit logicalOr verknüpfen?
$contraints[] = $query->logicalOr(
$query->logicalAnd( ... ),
$query->logicalAnd( ... )
);
Oder habe ich hier jetzt einen Verständnisfehler?
Grüsse ...
Hallo,
außer dem Tippfehler im 2.Codeschnipsel ( bei $con*traints[] fehlt ein s ) sieht das gut aus.
Wenn du $query->matching($constraints[]) ausführst, muss das selbsssverständlich auch stimmen. 😉
Die logicalAnd, logicalOr, usw. -Funktionen müssen, soweit ich weiß, genau 2 Parameter haben (was bei dir aber wohl so stimmt).
Das Objekt foo, das du abfragst, muss aber auch existieren. Wenn das mal nicht der Fall ist, kriegst du kein Ergebnis.
siehe http://forge.typo3.org/issues/11554
Aha! Da liegt der Hase im Pfeffer!
Danke für den Hinweis ... es gibt nämlich Fälle, da liegt (noch) kein Objekt vor und dann funktioniert es also nicht. Folglich muß ich mir jetzt eine Logik zusammenbauen, die auch Fälle abdeckt, wo ein Objekt noch nicht existiert.
Das Fehlende "s" war nur ein Tippfehler, da ich den Codeschnipsel schnell per Hand eingetippt habe... ;-)