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

Jetzt testen!

Schulungen

jetzt buchen

[Fluid] Suchformular - Variable im Controller benutzen


Autor Nachricht
Verfasst am: 20. 10. 2010 [14:29]
reginaldo
Themenersteller
Dabei seit: 26.09.2010
Beiträge: 13
Hallo allerseits,

ich setze mich jetzt schon seit einigen Wochen mit Extbase/Fluid auseinander. Ich habe vorher noch nie eine Extension erstellt und bin auf dem Gebiet noch ziemlich grün hinter den Ohren. Soweit ist auch alles klar und ich komme gut zurecht. Aber eine (für viele vielleicht banale) Sache verstehe ich nicht:

Ich habe auf der index View meines Controlers ein sehr simples Formular eingebaut. Es besteht aus einer Textbox und das wars. In die Textbox soll eine Ordernummer (bookingnumber) eingegeben werden und beim abschicken soll die showAction die Order (booking) mit der entsprechenden Nummer anzeigen.

Ich habe jetzt schon einige Tage lang Foren durchsucht und versucht mir das irgendwie verständlich zu machen. Aber ich brauche Hilfe icon_eek.gif

Das Formular in der index.html sieht so aus:

HTML
<f:form method="post" action="show">
Bookingnumber: <f:form.textbox name="bookingnumber" />
<f:form.submit value="Search" />
</f:form>


Und der entsprechende Teil des Controllers so:
PHP
/**
* Action that displays a single Booking
* 
* @param Tx_RaFreighttracking_Domain_Model_Booking $booking The booking to display 
* 
*/
 public function showAction() {
   $booking = $this->bookingRepository->findOneByBookingnumber($bookingnumber);		
   $bookingnumber = $this->request->getArgument('bookingnumber');
		$this->view->assign('booking', $booking);
	}



Wenn ich statt:
PHP
findOneByBookingnumber($bookingnumber);


das hier schreibe:
PHP
findOneByBookingnumber('SA002');


dann wird die Order mit der Nummer SA002 angezeigt. Aber ich verstehe nicht, wie ich jetzt 'SA002' mit einer Variablen austauschen kann.

Bitte, bitte helft mir. Ich hab schon Kopfschmerzen deswegen banghead.gif

Viele Grüße aus Schanghai,
reginaldo

[Dieser Beitrag wurde 2mal bearbeitet, zuletzt am 20.10.2010 um 14:33.]
Profil
Verfasst am: 21. 10. 2010 [05:20]
reginaldo
Themenersteller
Dabei seit: 26.09.2010
Beiträge: 13
Ich hab´s:

Das Problem lag eigentlich auf der Hand:

Im Controller habe ich den request nach findOneByBooking() eingetragen. icon_redface.gif Natürlich muss die request vorher geschehen. So funktioniert es:

PHP
/**
	 * Action that displays a single Booking
	 * 
	 * @param Tx_RaFreighttracking_Domain_Model_Booking $booking The booking to display 
	 * 
	 */
	public function showAction() {
		$bookingnumber = $this->request->getArgument('bookingnumber');
		$booking = $this->bookingRepository->findOneByBookingnumber($bookingnumber);		
		$this->view->assign('booking', $booking);
	}


Dann noch in der ext_localconf.php für die indexAction und die showAction das caching deaktivieren und alles läuft prima:

PHP
Tx_Extbase_Utility_Extension::configurePlugin(
	$_EXTKEY,
	'Pi1',
	array(
		'Booking' => 'index, show, new, create, edit, update, delete','Bookingdetails' => 'index, show, new, create, edit, update, delete','Trackinginfo' => 'index, show, new, create, edit, update, delete','Comment' => 'index, show, new, create, edit, update, delete',
	),
//das Array zum deaktivieren des caching:
	array(
		'Booking' => 'index, show, create, update, delete','Bookingdetails' => 'index, show, create, update, delete','Trackinginfo' => 'index, show, create, update, delete','Comment' => 'index, show, create, update, delete',
	)
);


Gruß,
reginaldo

[Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 21.10.2010 um 05:22.]
Profil