-1

我被困在一个地方。我在typo3中开发了一个扩展。我使用 flexform 进行管理。现在我尝试在后端模块的控制器中获取该 flexform 值,但我每次都得到“Null”。我为前端模块尝试的值相同,那时我可以获取值。

下面是我的 flexform 代码:

<T3DataStructure>
    <meta>
        <langDisable>1</langDisable>
    </meta>
    <sheets>
        <sCategorybox>
            <ROOT>
                <TCEforms>
                    <sheetTitle>XY</sheetTitle>
                </TCEforms>
                <type>array</type>
                <el>
                    <settings.cat1>
                        <TCEforms>
                         <exclude>1</exclude>
                         <label>XYZ</label>
                         <config>
                          <type>select</type>
                            <renderType>selectMultipleSideBySide</renderType>
                            <size>5</size>

                            <foreign_table>tx_myext</foreign_table>
                            <foreign_table_where> AND tx_myext.hidden = 0 AND tx_myext.deleted = 0 ORDER BY name ASC</foreign_table_where>
                         </config>
                        </TCEforms>
                    </settings.cat1>
                </el>
            </ROOT>
        </sCategorybox>
    </sheets>

</T3DataStructure>

在控制器的动作中,我尝试过这样$this->settings['cat1'];

Flexform 用于后台,当管理员向页面添加扩展时,管理员可以选择类别。

扩展还具有后端模块和后端模块的单独操作,我希望在该操作中选择选择的类别值。

4

1 回答 1

0

这看起来像插件的 FlexForm。

前端此插件上下文中的 Extbase 操作将填充 tt_content.pi_flexform 列中的设置(如果它们像您所做的那样,称为settings. ...)。

在后端,您不在插件上下文中。因此,您需要获取 pi_flexform 列并自己读出 XML 结构。

\TYPO3\CMS\Core\Service\FlexFormService有一些函数可以帮助您解析 XML。

于 2020-03-30T14:25:02.767 回答