2015-07-12 18 views
5

questa è la mia prima domanda qui così Ciao! Alla mia domanda: Mi sto esercitando su un'estensione Extbase molto semplice e ho usato un FlexForm per ottenere tre campi formulari. Uno di questi è chiamato "codice" che dovrebbe andare su EmbedderController.php e quindi sul visualizzatore List.html.Come ottenere valore da FlexForm a Controller [Typo3]

Ho provato molto e controllato tutti i tutorial che ho trovato. Ma in qualche modo non capisco veramente come ottenere il "codice" di valore FlexForm nel mio Controller. Qualunque cosa faccia, non ottengo alcun valore o una pagina vuota.

Questo è il mio 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> 

E questo è il mio 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']; 
     } 
} 

e questo è lo spettatore 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> 

risposta

7

Va bene potrebbe capirlo da solo. Per le persone che lottano con lo stesso problema come ho fatto io:

mio errore è stato, che non ho bisogno la linea $this->settings['code']; nel controller a tutti, ma scrivere {settings.code} nel visualizzatore list.html invece di {code}. È completamente diverso da quello che ho letto nel mio libro e alcuni tutorial, ma in realtà ha funzionato.

+0

potresti aggiungere il flag di risoluzione, perché oltre a sapere dove cercare esattamente – webfacer

0

Manca l'assegnazione del parametro di visualizzazione. Quindi cambiare

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

a

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

In questo modo {code} dovrebbe essere disponibile nella vista.