根据另一个带有typoscript的表中的数据从表中获取数据

时间:2012-10-08 11:01:26

标签: typo3 typoscript

我需要在页面上显示作者详细信息。

这是我获取页面内容的cruser_id的typoscript:

    20 = CONTENT
    20{
        table = tt_content
        select{
         selectFields = cruser_id
        }
        renderObj = COA
        renderObj{
         10 = TEXT  
         10{
         required=1      
         field=cruser_id
         }
        }
      }

如何获取与cruser_id相关联的用户名?

1 个答案:

答案 0 :(得分:3)

由于您没有指定代码的上下文,这里只是扩展您提供的代码的示例。

20 = CONTENT
20 {
  table = tt_content
  select {
    selectFields = cruser_id
  }
  renderObj = RECORDS
  renderObj {
    source.field = cruser_id 
    tables = be_users
    dontCheckPid = 1
    conf.be_users = TEXT
    conf.be_users {
      field = username
      noTrimWrap = || |
    }
  }
}

说明:您正在使用CONTENT cObject获取内容,并告诉TYPO3将其呈现为RECORDS cObject。此对象现在具有cruser_id的用户UID,可以使用source.field在其配置中使用它。 RECORDS因此从be_users表加载记录(使用UID = cruser_id),并告诉TYPO3将其呈现为TEXT cObject。因为它可以是任何cObject(例如COA),输出可能更复杂,包括来自后端用户记录的其他字段。


更复杂的例子

20 = CONTENT
20 {
  table = tt_content
  select {
    selectFields = cruser_id, tstamp
  }
  renderObj = COA
  renderObj {
    10 = TEXT
    10 {
      field = tstamp
      date = j/n/Y
      noTrimWrap = |Last modified: ||
    }

    20 = RECORDS
    20 {
      source.field = cruser_id 
      tables = be_users
      dontCheckPid = 1
      conf.be_users = COA
      conf.be_users {
        stdWrap.noTrimWrap = |<br />Author: ||

        10 = TEXT
        10 {
          field = realName
        }

        20 = TEXT
        20 {
          field = username
          noTrimWrap = | (|)|
        }
      }
    }
  }
}