0

情况

我有一个(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
          }
        }
      }
    }

弹性表格/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 表中的所有记录。我想要一个只在后端分配的。

我希望我的意图很明确。

先感谢您!

4

1 回答 1

0

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

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

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

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

于 2021-09-06T06:38:27.310 回答