Extbase - Query Objekt

Aus Wikizone
Wechseln zu: Navigation, Suche

Siehe auch:

Extbase - Sortierung und Abfrage von Objekten

Das Query Object steuert Abfragen auf die Datenbank. Wenn man z.B. findAll() im Controller ausführt, werden die Parameter für die Abfrage aus diesem Objekt geholt.

Beipiele

Beispiel Kommaseparierte Liste für Abfrage

http://www.buero-sonne.de/2014/10/16/mysql-orderby-field-in-extbase.html

/**
 *  Find by multiple uids using, seperated string and maintain the list order 
 * 
 */
public function findByUidListOrderByList($uidList) {
    $uidArray = explode(",", $uidList);
    $query = $this->createQuery();
    $query->matching(
        $query->in('uid', $uidArray),
        $query->logicalAnd(
            $query->equals('hidden', 0),
            $query->equals('deleted', 0)
        )
    );
    $query->setOrderings($this->orderByField('uid', $uidArray));
 
    return $query->execute();
}
 
 /**
 *  Set the order method 
 * 
 */
protected function orderByField($field, $values) {
    $orderings = array();
    foreach ($values as $value) {
        $orderings["$field={$value}"] = \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_DESCENDING;
    }
    return $orderings;
}