ПОЛЕ SQL в запросе extbase TYPO3 - PullRequest
0 голосов
/ 14 ноября 2018

Как мне написать SQL-запрос

SELECT * 
FROM tx_test_domain_model_icon 
WHERE uid IN (24,42,23,25,26,31,40,41,54)
ORDER BY FIELD(uid, 24,42,23,25,26,31,40,41,54)

в коде Extbase?

В моем IconRepository у меня есть

    $query = $this->createQuery();

    $and = [
        $query->in('uid', $serviceIconIds),           
        $query->setOrderings($this->orderByKey('uid', $uidList))
    ];
    $query->matching($query->logicalAnd($and));

    $result = $query->execute();

Но как я могу установить порядок?

РЕШЕНИЕ Это сработало для меня

$query->setOrderings($this->orderByUid('uid', $serviceIconIds));

    $result = $query->execute();
}
protected function orderByUid($key, $uidlist)
{
    $order = array();
    foreach ($uidlist as $uid) {
        $order["$key={$uid}"] = QueryInterface::ORDER_DESCENDING;
    }
    return $order;
}
...