TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

select Viewhelper wird nicht befüllt


Autor Nachricht
Verfasst am: 20. 05. 2011 [08:09]
dani2k6
Themenersteller
Dabei seit: 20.05.2011
Beiträge: 3
Hallo liebes Forum,

Ich verzweifle gerade daran, dass in meinem Template der select Viewhelper nicht befüllt wird. Dieser ist leer.
Ich übergebe in der newAction eine Ansammlung von AbstractEntity Objekten als Array an das Template:
(betreffendes Objekt: parentObject)

PHP
public function newAction(Tx_Crc806dbApp_Domain_Model_Metadata $newMetadata = NULL) {
 
                $parentObjects = $this->metadataRepository->findAll();
                $this->view->assign('parentObjects',$parentObjects );
 
                $keywords = $this->keywordsRepository->findAll();
                $this->view->assign('keywords',$keywords );
 
		$this->view->assign('newMetadata', $newMetadata);
 
	}



Im Template kann ich die properties der Objekte parentObject wunderbar mit dem for-Viewhelper ausgeben:
HTML
<f:for each="{parentObjects}" as="parentObject">
		<tr>
			<td><f:link.action action="show" arguments="{parentObject : parentObject}"> {parentObject.identifier}</f:link.action></td>
   </tr>
	</f:for>


Mein select Viewhelper bleibt jedoch leer:

HTML
<f:form.select property="parentObject" options="{parentObjects}" optionLabelField="identifier" optionValueField="uid"  multiple="multiple" style="width: 30em"/>



Jemand ne Idee wo der Fehler liegen könnte ?

Viele Grüße
Daniel

Profil
Verfasst am: 20. 05. 2011 [10:18]
dani2k6
Themenersteller
Dabei seit: 20.05.2011
Beiträge: 3
Problem solved...
I did not pass the arguments from the template to the partial...
Profil
Verfasst am: 02. 04. 2012 [16:00]
Bluespuke
Dabei seit: 03.09.2008
Beiträge: 57
dani2k6 schrieb:

Problem solved...
I did not pass the arguments from the template to the partial...

[ironie]
Vielen herzlichen Dank für diese ausfühliche Lösung, diese war sehr hilfreich für alle die ein ähnliches Problem haben!
[/ironie]

gz,
Bluespuke
Profil
Verfasst am: 02. 04. 2012 [16:28]
jank
Dabei seit: 01.04.2009
Beiträge: 147
wenn man mit Partials arbeitet muss man die Variablen, die man in diesen Verwenden möchte auch an das Partial übergeben:

HTML
<f:render partial="Product/Properties" arguments="{product:product}" />


Will man mehrere Variablen übergeben, muss man diese mit Komma trennen.

HTML
<f:render partial="Product/Properties" arguments="{product:product, colors:colors}" />




gruß jank
ProfilWWW
Verfasst am: 02. 04. 2012 [16:29]
dani2k6
Themenersteller
Dabei seit: 20.05.2011
Beiträge: 3
hmm ok das war vielleicht ein wenig knapp.....

In meinem Controller weise ich dem Template das Objekt über folgende Codezeile zu:

PHP
$this->view->assign('parentObjects',$parentObjects );


Nun kann ich in meinem New.html template file mit Hilfe des Fluid Viewhelpers das Objekt
folgendermaßen ansprechen

HTML
<f:for each="parentObject" as="parentObjects">
    {parentObject.property}  // property durch die Eigenschaft eures Domänenobjekts ersetzen
</f:for>


Nun hatte ich einen Teil meines Templates in ein Partial ausgelagert und wollte innerhalb des
Partials auf das Domänenobjekt zugreifen
Dazu muss man unbeding die Objekte als Parameter vom Template in das Partial übergeben:

HTML
<f:render partial="Metadata/properties" arguments="{parentObjects}" />



Ich hoffe das war verständlich

Liebe Grüße

[Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 02.04.2012 um 16:30.]
Profil
Verfasst am: 11. 03. 2013 [17:14]
eddy
Dabei seit: 10.07.2007
Beiträge: 168
Superklasse,

hänge an diesem Problem mit nicht befüllten selectboxen nun schon tagelang und endlich hier der entscheidende Hinweise mit den arguments in den partials.

Auf der anderen Seite ist es sehr nervtötend, zur Recherche nicht auf aktuelle Quellen zugreifen zu können. Viele Infos existieren zwar im Netz, aber oft veraltet oder widersprüchlich.

Nicht mal in der Fluid Viewhelper Reference kommt z.B. dieses Problem hier zur Sprache (man möge mich korrigieren, wenn dem doch so ist). icon_rolleyes.gif

Eddy
ProfilWWW
Verfasst am: 14. 03. 2013 [12:13]
harald1972
Dabei seit: 11.02.2011
Beiträge: 44
Jeder View müssen alle Parameter übergeben werden, die sie irgendwie verwenden soll.
(Ist ja irgendwie logisch)
D.h. auch (und vor allem) dann wenn z.B. ein Partial ein weiters Partial aufruft.

Beim ersten Mal hab ich auch lang gebraucht.
Inzwischen brauch ich nur noch lange, um die Stelle zu finden, bei der ich diese Übergabe vergessen habe.
Es gilt ja das Paradigma des Durchreichens von Objekten, Attributen, Methoden, irgendwie von allem.
Auf dem ganzen Weg, den die Objekte zurücklegen müssen, geht schonmal was verloren. icon_wink.gif

Also: Wenn mal das Select leer ist, oder sonst irgendein Feld, den ganzen Weg absuchen, den der Inhalt gehen muss!

Gruß Harald
Profil