Search code examples
repositorytypo3sql-order-bytypo3-9.xflexform

Typo3 9.5 - Custom flexform ordering, wrong backquotes in sql


i have an custom extension, where you can select the different entries at the backend, to show them at the list view. I have a custom sorting at my backend, but the system always sort them Descending.

I implemented an "orderBy" function, which doesnt work, because the system uses wrong backspaces.

My code looks like this:

I call the sort function in my "findByUid($uid)" function like this:

$query->setOrderings($this->orderByKey('uid', $uidArray));


protected function orderByKey($key, $uidlist) {
    $order = array();
    foreach ($uidlist as $uid) {
        //$order["$key=$uid"] = \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_DESCENDING;
        $order["$key=$uid"] = "ASC";
        \TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($order);
    }
    return $order;
}

The result at the sql query is:

ORDER BY `tx_MYEXTENSION_domain_model_FIELD`.`uid=3` DESC

But it must be:

ORDER BY `tx_MYEXTENSION_domain_model_FIELD`.`uid` = 3 DESC

Is there a way to change this?


Solution

  • After a lot of search, I found this solution on an stackoverflow entry:

    $ids = explode(',',$this->settings['entries'])
    foreach($ids as $key => $id){
      $entries[$id] = $this->entriesRepository->findByUid($id);
    }
    

    This code snippet has to be intergrated at the controller. For me its working.