【发布时间】:2018-03-08 12:09:46
【问题描述】:
我尝试从表 sys_files 中选择所有与一个类别或子类别链接的文件。
在我的示例中,文件的主要类别的 ID 为 1,上面还有一些子类别。
我首先创建了 SQL-Code,直接在数据库上试用:
SELECT sys_file.name, sys_file.identifier, sys_category.title
FROM sys_category
RIGHT JOIN sys_file_metadata ON (sys_file_metadata.categories =
sys_category.uid)
JOIN sys_file ON (sys_file.uid = sys_file_metadata.file)
WHERE (sys_category.parent = 1) OR (sys_category.uid = 1)
order By sys_category.title
这可以正常工作。
现在,我尝试在打字稿中进行类似的操作,如下所示:
lib.documentindex = CONTENT
lib.documentindex {
wrap = <ul>|</ul>
table = sys_category
select {
selectFields = sys_file.name, sys_file.identifier, sys_category.title
rightjoin = sys_file_metadata ON (sys_file_metadata.categories = sys_category.uid) join sys_file ON (sys_file.uid = sys_file_metadata.file)
where = sys_category.uid = 1 OR sys_category.parent = 1
orderBy = sys_category.title
}
renderObj = COA
renderObj.wrap = <li>|</li>
renderObj.10 = TEXT
renderObj.10 {
field = identifier
wrap = <a href="|">
}
renderObj.20 = TEXT
renderObj.20.field = name
renderObj.30 = TEXT
renderObj.30.value = </a>
}
这不起作用。但真正奇怪的是,它工作了一半。 所以如果我这样写:
where = sys_category.uid = 1 OR sys_category.parent = 1
它显示为所有具有父级为 1 的类别的文件。 但它不会显示 id 为 1 的类别的文件。
我现在这样写吗
where = sys_category.parent = 1 OR sys_category.uid = 1
反之亦然,它显示 id 为 1 的类别的文件。但没有父 id 为 1 的文件。
在select的官方文档中(找到here),它只是告诉了where-option:
没有单词“WHERE”的WHERE子句。
但这还不是全部。我尝试了很多东西,而且我尝试的所有东西都不像真正的 SQL 代码。我不知道这个typo3 的东西是不是有问题,或者我只是用错了。
【问题讨论】:
-
您使用的是哪个 TYPO3 版本?
-
嗨,我用的是 7.6.18。
标签: select typo3 typoscript or-operator