2015-07-12 75 views
5

這是我第一個問題,所以你好! 對我的問題: 我正在練習一個非常簡單的Extbase擴展,並使用FlexForm獲得三個字段。其中之一被稱爲「代碼」,它應該到EmbedderController.php,然後到查看器List.html。如何從FlexForm獲得價值到控制器[Typo3]

我試了很多,並檢查了我能找到的所有教程。但不知何故,我真的不明白如何將FlexForm值「代碼」放到我的Controller中。 無論我做什麼,我都沒有得到任何價值或空白頁面。

這是我的柔性成型: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> 

回答

7

好吧,我可以自己弄清楚。對於像我一樣誰同樣的問題掙扎的人:

我的錯誤是,我沒有需要在控制器的線$this->settings['code'];可言,但在觀衆List.html,而不是僅僅寫{code}{settings.code}。它與我在書中和一些教程中看到的完全不同,但實際上這很有效。

+0

請問您可以添加解析標誌,因爲除了知道在哪裏準確地查找 – webfacer

0

視圖參數的分配丟失。因此改變

public function listAction() { 
    $this->settings['code']; 
} 

public function listAction() { 
    $this->view->assign('code', $this->settings['code']); 
} 

這樣{code}應該在視圖中可用。