读取TYPOscript fe_users在COA中不起作用

时间:2018-12-04 11:02:55

标签: mysql typo3 typoscript typo3-8.x

我只有以下问题,我想通过TYPOScript在模板中花费一个特定的FE_user,只有这样是行不通的,是否有限制性的SQL语句,或者我在这里使用了什么错?也许是嵌套?

代码如下:

lib.contactPasswords = COA
lib.contactPasswords.10 = TEXT
lib.contactPasswords.10.value (
    <p>User: Safari</p>
)
lib.contactPasswords.20 = CONTENT
lib.contactPasswords.20 {
    table = fe_users
    select {
        max = 1
        pidInList = 173
        andWhere = username = 'Safari'
    }
    renderObj = COA
    renderObj
    {
        10 = TEXT
        10.field = username
        wrap =|<br / >
    }
}
lib.contactPasswords.20.wrap = <div>User: |</div>

输出与之相同:

<p>User: Safari</p>
<div>User:</div>

所需结果:

<p>User: Safari</p>
<div>User: Safari</div>

有人可以向我解释错误在哪里,为什么内容仍然为空?

更多信息:

  • TYPO3版本:8.7.19
  • 使用方式:流体模板中的<f:cObject typoscriptObjectPath="lib.contactPasswords" />
  • 是的:数据库中存在用户“ Safari”:)

2 个答案:

答案 0 :(得分:1)

您确定用户名是Safari吗?在TYPO3中,用户名通常都是小写。如果您是通过后端添加的,则将其转换为小写。就是safari

您不应在cObject{之间输入回车符。应该是cObject {

自TYPO3 7.1起也不推荐使用andWhere,并在TYPO3 8.7中将其删除。您应该改用where

对我来说,这可行:

lib.contactPasswords.20 = CONTENT
lib.contactPasswords.20 {
  table = fe_users
  select {
    max = 1
    pidInList = 173
    where = username = 'safari'
  }
  renderObj = COA
  renderObj {
    10 = TEXT
    10.field = username
    wrap = |<br / >
  }
}

答案 1 :(得分:0)

“ andWhere”要求您在语句中也使用“ where”。 但是请避免使用“ andWhere”,因为它已被弃用。参见https://docs.typo3.org/typo3cms/extensions/core/Changelog/7.1/Deprecation-25112-andWhere.html