Zum Inhalt springen

Extbase Suche in anderen Tabellen

Erstellt am 18. Oktober 2012 · 2 Antworten · letzte Antwort am 18. Oktober 2012

Tags: Datenbank, Frage

zabus ·

Hallo Leute!

Folgender Fall:

Ich habe ein ModelObject(nennen wir es A), dass eine M:N Relation zu einem anderen hat(B), jetzt übergebe ich einen Suchstring an eine Action, dort will ich nach allen A Objects suchen die eine Relation zu einem B Object haben, dass in dem Feld name den Suchstring enthaltet. Wie kann ich sowas schön mit extbase umsetzen?

Mir fällt da auf die schnelle nichts ein...

Lg Zabus 😉

Coreblade ·

Hallo zabus

Du kannst in Deinem Repository eine Funktion erstellen, die die beiden Tabellen Joined. Diese Funktion rufst Du dann in Deinem Controller auf.

public function FilterList($suchstring) {
        $query = $this->createQuery();

        $where = "WHERE a.deleted = 0 AND a.hidden = 0";

        if (strlen($suchstring) > 0) {
            $where .= " AND a.name LIKE '" . $suchstring . "%'";
        } 

        $sql = "SELECT a.* FROM tx_deineExtension_domain_model_a AS a LEFT JOIN tx_deineExtension_domain_model_b AS b ON a.uid = b.foreignkey " . $where;
        $query->statement($sql);
        return $query->execute();
    }

Oder habe ich Dich falsch verstanden? PS: Die Funktion ist nicht getestet.

Gruss Coreblade

zabus ·

hm jo hab die möglichkeit schon gefunden, funzt auch. dachte, dass es vl. noch was von typo3 gibt wo ich keinen custom query machen muss. Danke 😉