Hi,
ich habe vereinfacht folgende Daten-Struktur: 1 Firma hat n Jobs (im Angebot) Wenn ich nun Jobs im JobRepository abfragen möchte in Form einer Suche nach Job-Titel und Titel der Firma, die den Job eingestellt hat - Wie kann ich den Namen der Firma ausgehend vom Job mit in die Query einbeziehen? Also wie kann ich auf Eigenschaften übergeordnete Objekte zugreifen? Nur per Custom SQL?
...
$query = $this->createQuery();
return $query
->matching(
$query->logicalOr(
$query->like('title', '%' . $value . '%') //,
// @todo: how can we do the following.
// $query->like('parentobject.company.title', '%' . $value . '%')
);
)
->setOrderings($this->defaultSorting)
->execute();
...
Danke - sicher mal gut zu gebruachen, aber da hier 1 Company n Jobs hat, gibt es erst mal keine mm-Tabelle. Aber zur Not baue ich das halt zu mm um, auch wenn es ansonsten keinen großen Sinn macht.
Hatte gehofft es gäbe einen "offiziellen" Weg dafür.
Stehe genau vor dem gleichen Problem. Normalerweise würde ich mir ja den Parent dazu joinen, aber keine Ahnung wie das mit extbase gehen soll..
Eine mm-Relation kommt nicht in Frage!
Wäre für jeden Tipp dankbar!
Auch wenn das eine eklige Lösung ist, sie ist möglich und daher sollte sie auch nicht unbekannt bleiben:
public function findHiddenById($entry){
$query = $this->createQuery();
$query->statement('SELECT * FROM tx_ABC_domain_model_DEF WHERE uid = '.intval($entry).' LIMIT 1;');
return $query->execute()->getFirst();
}
Also könnt ihr in den Statements natürlich auch JOINen^^. Ist nen doofes Beispiel, hab leider grade kein gejointes.
Gruß
Bastian
bberger schrieb
Stehe genau vor dem gleichen Problem. Normalerweise würde ich mir ja den Parent dazu joinen, aber keine Ahnung wie das mit extbase gehen soll..
Eine mm-Relation kommt nicht in Frage!
Wäre für jeden Tipp dankbar!
Bin mir nicht sicher ob ich Dich richtig verstehe... du hast zwar im Parent einen Getter/Property für die Children, aber in den Children keinen Getter/Property für das Parent, richtig? Weil dann könntest Du es auch mit einer Extbase-Query wie z.B. $query->like('parent.title', '%' . $value . '%') abfragen (Extbase macht dann den Join für Dich).
Das fehlende Property kannst Du Dir ohne weiteres von Hand im Children-TCA bzw. -Model anlegen. Im TCA muss das Feld halt einfach "in die andere Richtung zeigen". Das geht sowohl für many-to-many als auch one-to-many Beziehungen. Hilft Dir das weiter?