接收和显示 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。
情况:
我有一个 (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。