Typo3 9.5 - 自定义 flexform 排序,sql 中的反引号错误
Typo3 9.5 - Custom flexform ordering, wrong backquotes in sql
我有一个自定义扩展,您可以在其中 select 后端的不同条目,以在列表视图中显示它们。我的后端有一个自定义排序,但系统总是对它们进行降序排序。
我实现了一个 "orderBy" 函数,但它不起作用,因为系统使用了错误的退格键。
我的代码如下所示:
我在 "findByUid($uid)" 函数中这样调用排序函数:
$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;
}
sql 查询的结果是:
ORDER BY `tx_MYEXTENSION_domain_model_FIELD`.`uid=3` DESC
但必须是:
ORDER BY `tx_MYEXTENSION_domain_model_FIELD`.`uid` = 3 DESC
有办法改变吗?
经过大量搜索,我在 Whosebug 条目上找到了这个解决方案:
$ids = explode(',',$this->settings['entries'])
foreach($ids as $key => $id){
$entries[$id] = $this->entriesRepository->findByUid($id);
}
此代码段必须集成到控制器中。
对我来说它的工作。
我有一个自定义扩展,您可以在其中 select 后端的不同条目,以在列表视图中显示它们。我的后端有一个自定义排序,但系统总是对它们进行降序排序。
我实现了一个 "orderBy" 函数,但它不起作用,因为系统使用了错误的退格键。
我的代码如下所示:
我在 "findByUid($uid)" 函数中这样调用排序函数:
$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;
}
sql 查询的结果是:
ORDER BY `tx_MYEXTENSION_domain_model_FIELD`.`uid=3` DESC
但必须是:
ORDER BY `tx_MYEXTENSION_domain_model_FIELD`.`uid` = 3 DESC
有办法改变吗?
经过大量搜索,我在 Whosebug 条目上找到了这个解决方案:
$ids = explode(',',$this->settings['entries'])
foreach($ids as $key => $id){
$entries[$id] = $this->entriesRepository->findByUid($id);
}
此代码段必须集成到控制器中。 对我来说它的工作。