Zum Inhalt springen

Variabel aus URL auslesen?

Erstellt am 13. August 2012 · 3 Antworten · letzte Antwort am 15. August 2012

Tags: Frage

mimaxx ·

Hallo,

hoffe es nimmt mir keiner übel das ich für dieses Problem nochmal einen neuen Thread eröffne. Hatte hier das Problem mit der paginate und dem Filter und bin schon ein ganzes Stück weiter.

Problem ist jetzt noch wie ich Variablen aus einer URL verarbeite.

Habe diesen Link gebastelt

index.php?id=6
&tx_myext_list[searchFilter]=leer
&tx_myext_list[@widget_0][currentPage]=2
&cHash=975410600cb4787b08772f221f7204e2

Nun möchte ich prüfen ob searchFilter nicht leer ist und mit dem Wert den Filter wieder setzten. So sieht die list action aus. Zum testen ob überhaupt etwas passiert gebe ich einfach ein OK aus ohne if geht das auch. $demand ist für die Suche aus einem Formular das geht auch. Aber wie komme ich an searchFilter aus der URL?

protected $searchFilter;

	/**
	 * action list
	 * @param Tx_MyExt_Domain_Model_Demand $demand
	 * @param string $searchFilter filter from list action
	 * @return void
	 */
	
	public function listAction($searchFilter = NULL, Tx_MyExt_Domain_Model_Demand $demand = NULL) {
		#$artikelRepository = t3lib_div::makeInstance('Tx_MyExt_Domain_Repository_ArtikelRepository');			
		if($searchFilter !== NULL) {
		$this->view->assign('test', 'OK2');    
		}
		$this->view->assign('searchFilter', 'leer');		
		$this->view->assign('artikels', $this->artikelRepository->findDemand($demand));		
					    
	}

Gruß
Marcus

mimaxx ·

Hi,
besten Dank! Der Tipp war schonmal super und ich war auch schon sehr nah dran war schon bei getArgument aber nicht hasArgument um erstmal abzufragen. Aber das funzt super.

Aber dennoch eine Frage wie ist das bei einem Array denn da funktioniert das Beispiel im Link nicht.

Wenn ich zb &tx_myext_list[searchFilter][filter2]=Wert habe.

gibt es sowas wie
$this->request->hasArgument('searchFilter[filter2]') das geht leider nicht ganz bei allen Versuchen mit einem Array kommt

"Request hash (HMAC) checking failed. The parameter __hmac was invalid or not set, and objects were modified"

Gruß
mimaxx

mimaxx ·

So nun habe ich auch hier die Lösung gefunden. Für alle die es interessiert oder auf das gleiche Problem stoßen.

Dies hat mir geholfen http://wiki.typo3.org/Extbase_HowTos

Wenn man eine einzelne Variable ausliest heisst es

$this->request->getArgument('meineVariable');

über

$this->request->getArguments();

bekomme ich alle Argmente. Wichtig, und das war mein Fehler, die Pluralform getArguments

und so kann man sie dann auslesen

$argumente = $this->request->getArguments();
$argumente['meineVariable1']['meineVariable2'] ...