Zum Inhalt springen

Übergabe eines Parameters an die Action

Erstellt am 11. Juli 2013 · 4 Antworten · letzte Antwort am 16. Juli 2013

Tags: Fluid, Frage

ut3ex ·

Hallo Leute,

Mein view sieht so aus:

<f:form method="post" action="copy" object="{partner}" >
<select>
<f:for each="{partners}" as="partner">
<option name="pagesUid" value="partner.title">{partner.title} ({partner.uid})</option>
</f:for> </select>
<f:form.textfield name="partnerTitle"/><br />
<f:form.submit value="Copy" />
</f:form>

Ich will in meine Action, dass was ich in textfield eingebe, als partnerTitle speichern

/**
* action copy
* @param \Si\Simodul\Domain\Model\Partner $partner
* @param string $partnerTitle
*
* @return void
*/
public function copyAction(\Si\Simodul\Domain\Model\Partner $partner=NULL, $partnerTitle) {

$partnerTitle = \TYPO3\CMS\Core\Utility\GeneralUtility::_GET('partnerTitle');
echo $partnerTitle;

}

Ich kriege aber immer eine leere Ausgabe. Woran kann es liegen und wie kann ich den Wert von partnerTitle speichern.

ut3ex ·
krisc schrieb

Hallo,

das Formular wird mit POST abgesendet, aber in der AAction fragst du einen GET-Parameter ab, und das funktioniert nicht.

Mit $partnerTitle = \TYPO3\CMS\Core\Utility\GeneralUtility::_POST('partnerTitle'); habe ich auch versucht. Da war auch immer eine leere Ausgabe.

krisc schrieb

Du könnntest es z.B. mit hasArgument bzw. getArgument(s) versuchen:
http://wiki.typo3.org/Extbase_HowTos#Accessing_GET.2FPOST_vars

Mit getArguments hat es funktioniert. Danke.

KarlKappe ·

Hi,
diese Lösung ist aber nicht die schönste!

Wozu hast Du dann die Parameter in der action definiert?

public function copyAction(\Si\Simodul\Domain\Model\Partner $partner=NULL, $partnerTitle) {

Das macht man ja nicht, um sie dann gleich wieder zu überschreiben. Versuch mal im View mit property zu arbeiten, dann brauchst Du in der Action keine Stunts zu drehen um an das Objekt zu kommen. Weiterer Vorteil: Du hast den Partner dann direkt als Objekt.

VG Karl

ut3ex ·

Hai KarlKappe,

wenn ich im View mit property arbeite, wird der Parameter gar nicht gespeichert. Das Partnerobjekt wird erstellt, aber PartnerUid und PartnerTitle sind leer.

<f:form action="copy"  object="{partner}" >
																	Enter the Uid:
																	<f:form.textfield property="partnerUid"/><br/><br/>
																	Partnertitle: <f:form.textfield property="partnerTitle"/><br/>		
																	<f:form.submit value="Copy" />
																</f:form>