接收和显示 Extbase/Fluid 中引用记录的数据

Receiving and Displaying data of referenced record in Extbase/Fluid

情况:

我有一个 (Extbase/Fluid) 扩展,它存储来自特定数据库 table (tt_address) 的 单个数据库引用

<internal_type>db</internal_type>
<allowed>tt_address</allowed>

意向: 我想在前端显示数据(一些数据库字段)来自这个参考(仅)。

问题: 如何获取 Extbase/Fluid 中存储的引用以及如何访问数据字段?在前端?

错别字:

    tt_content {
      addresscontainer = FLUIDTEMPLATE
      addresscontainer {
    
        templateName = AddressContainer
        templateRootPaths {
          10 = EXT:xyz/Resources/Private/Partials/ContentElements/
        }
        partialRootPaths {
          10 = EXT:xyz/Resources/Private/Partials
        }
        dataProcessing {
          1 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
          1 {
              options {
                    if.isTrue.field = records
                }
                table = tt_address
                #where = uid = 5
    
                pidInList = 20
                as = address_record
          }
        }
      }
    }

柔性/XML:

    <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
    <T3DataStructure>
        <sheets>
            <sDEF>
                <ROOT>
                    <TCEforms>
                        <sheetTitle>TT-Address - Single Address</sheetTitle>
                    </TCEforms>
                    <type>array</type>
                    <el>
                        <faddress>
                            <TCEforms>
                                <label>Single Address</label>
                                <config>
                                    <type>group</type>
                                    <internal_type>db</internal_type>
                                    <allowed>tt_address</allowed>
                                    <size>1</size>
                                    <maxitems>1</maxitems>
                                    <minitems>0</minitems>
                                    <show_thumbs>1</show_thumbs>
                                </config>
                            </TCEforms>
                        </faddress>
                    </el>
                </ROOT>
            </sDEF>
        </sheets>
    </T3DataStructure>

HTML:

<strong>{address_record.data.company}</strong><br>

代码基本上可以正常工作。但是,它会获取存储在 tt_address table 中的所有记录。我只想要在后端被分配的那个。

我希望我的意图是明确的。

提前致谢!

如果您想从您的插件或内容元素访问 FlexForm 值,您可以使用数据类型 flexform:

dataProcessing {
  10 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
  10 {
    table = tt_address
    pidInList = 20
    uidInList.data = flexform:pi_flexform:faddress
  }
}

有关 data type flexform 的详细信息,请参阅 TypoScript 参考。

如果您使用的是 TYPO3 v11,您还可以使用全新的 FlexForm Data Processor