在TYPO3 v8中通过TypoScript
创建查询Doctrine-Framework已经用于创建SQL查询。以下代码会引发错误,但在以前的TYPO3版本中可能会出错:
lib.myElement = CONTENT
lib.myElement {
wrap = <div class="inner-wrapper">|</div>
required = 1
table = tt_content
select.languageField = sys_language_uid
select.pidInList = {$pidConstant}
select.max = 1
select.where = colPos = 0
select.orderBy = RAND()
select.selectFields = bodytext,image,header,header_link
renderObj=COA
renderObj{
...
}
}
在TYPO3版本8中现在是使用此精华记录的错误:
{"exception":"Doctrine\\DBAL\\Driver\\Mysqli\\MysqliException: Unknown column 'rand()' in 'order clause'...}
那么它是否仍然可以随机排序,如果是的话,在上面的TypoScript基础上运行它的诀窍是什么?
诀窍是将RAND()添加到字段列表并分配别名。别名可用于排序。
lib.myElement = CONTENT
lib.myElement {
wrap = <div class="inner-wrapper">|</div>
required = 1
table = tt_content
select.languageField = sys_language_uid
select.pidInList = {$pidConstant}
select.max = 1
select.where = colPos = 0
select.orderBy = my_alias
select.selectFields = bodytext,image,header,header_link,RAND() as my_alias
renderObj=COA
renderObj{
...
}
}