【问题标题】:Receiving and Displaying data of referenced record in Extbase/Fluid在 Extbase/Fluid 中接收和显示引用记录的数据
【发布时间】:2021-09-05 08:12:45
【问题描述】:

情况

我有一个 (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 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
          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 表中的所有记录。我想要只在后端分配的那个。

我希望我的意图很明确。

提前谢谢你!

【问题讨论】:

    标签: typo3 fluid extbase flexform


    【解决方案1】:

    如果您想从您的插件或内容元素中访问 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-02
      • 1970-01-01
      相关资源
      最近更新 更多