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



情况

我有一个(Extbase/Fluid)扩展,它存储特定数据库表(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 = TYPO3CMSFrontendDataProcessingDatabaseQueryProcessor
1 {
options {
if.isTrue.field = records
}
table = tt_address
#where = uid = 5

pidInList = 20
as = address_record
}
}
}
}

Flexform/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表中的所有记录。我只想要在后台分配的那个。

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

提前谢谢!

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

dataProcessing {
10 = TYPO3CMSFrontendDataProcessingDatabaseQueryProcessor
10 {
table = tt_address
pidInList = 20
uidInList.data = flexform:pi_flexform:faddress
}
}

有关数据类型flexform的详细信息,请参阅TypoScript参考。

如果您使用的是TYPO3 v11,您也可以使用全新的FlexForm数据处理器。

最新更新