我正在练习一个非常简单的 Extbase 扩展,并使用 FlexForm 来获取三个公式字段。
其中之一称为“代码”,它应该转到 EmbedderController.php,然后转到查看器 List.html。
我检查了我能找到的所有教程。
我不明白如何将 FlexForm 值“代码”放入我的 Controller 中。
我得到一个空页面或没有得到任何值(value)。
这是我的 FlexForm:Embedder.xml

<T3DataStructure>
        <meta type="array">
                <langChildren>0</langChildren>
                <langDisable>1</langDisable>
        </meta>
        <ROOT>
                <type>array</type>
                <el>
                        <settings.code>
                                <TCEforms>
                                        <label>Video Code</label>
                                        <config>
                                                <type>input</type>
                                                <size>20</size>
                                                <max>30</max>
                                                <eval>trim</eval>
                                        </config>
                                </TCEforms>
                        </settings.code>
                        <settings.width>
                                <TCEforms>
                                        <exclude>1</exclude>
                                        <label>Breite in Pixel</label>
                                        <config>
                                                <type>input</type>
                                                <size>10</size>
                                                <max>10</max>
                                                <eval>trim</eval>
                                        </config>
                                </TCEforms>
                        </settings.width>
                        <settings.height>
                                <TCEforms>
                                        <exclude>1</exclude>
                                        <label>Höhe in Pixel</label>
                                        <config>
                                                <type>input</type>
                                                <size>10</size>
                                                <max>10</max>
                                                <eval>trim</eval>
                                        </config>
                                </TCEforms>
                        </settings.height>
                </el>
        </ROOT>
</T3DataStructure>
这是我的 EmbedderController.php
<?php
namespace HhuMediathek\Hhumediathek\Controller;

/**
 * EmbedderController
 */
class EmbedderController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {

        /**
         * embedderRepository
         *
         * @var \HhuMediathek\Hhumediathek\Domain\Repository\EmbedderRepository
         * @inject
         */
        protected $embedderRepository = NULL;

        /**
         * action list
         *
         * @return void
         */
        public function listAction() {
                $this->settings['code'];
        }
}
这是查看器 List.html
<f:layout name="Default" />
<f:section name="main">
<iframe width='570' height='321' style='width: 570px; height: 321px; border: 1px solid #ccc;' src='//xxx.de/embed/{code}' frameborder='0' allowfullscreen></iframe>
    </f:section>

最佳答案

好吧,我可以自己弄清楚。对于和我一样遇到同样问题的人:

我的错误是,我根本不需要 Controller 中的 $this->settings['code']; 行,而是在查看器 List.html 中编写 {settings.code} 而不仅仅是 {code} 。它与我在我的书和一些教程中读到的完全不同,但这确实有效。

关于typo3 - 如何从 FlexForm 到 Controller 获取值(value),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31369991/

10-14 16:42
查看更多