Získanie parametrov z URL iba pre presenter

- fiso
 - Člen | 32
 
Nette dokáže z url adresy zistiť, ktorým komponentám má predať aké údaje, napríklad ak je zadané url ?paging-page=3, tak komponente s názvom paging dá v loadState parameter page s hodnotou 3. Čo by sa mi celkom zišlo, je niečo takéto si zistiť v presenteri. Ak mám presenter FilmPresenter, tak by som rád zistil všetky premenné z url čo začínajú na film-, teda napríklad ?film-order=asc&film-orderby=name&paging-page=4
V presenteri by som dostal pekné pole
array('order' => 'asc', 'orderby' => 'name') a o nič by som
sa nemusel starať :) Zatiaľ by sa to dalo riešiť parsovaním
$this->getHttpRequest()->getQuery(); to je ale zbytočne
redundantné, lebo viem že to niekde v Nette je, len som to nenašiel.

- JakubKohout
 - Člen | 92
 
Určitě ti poradí někdo kvalifikovanějśí ale já bych zkusil metody který jsou popsány zde: https://api.nette.org/…mponent.html ;)

- fiso
 - Člen | 32
 
Zatiaľ to riešim tak, že v startupe mám toto:
// parse get parameters
foreach($this->getHttpRequest()->getQuery() as $name => $value) {
	$parts = (array) explode(self::NAME_SEPARATOR, $name, 2);
	if(count($parts) == 1) {
		$this->params[ $parts[0] ] = $value;
	} else {
		$this->params[ $parts[0] ][ $parts[1] ] = $value;
	}
}
				
- Honza Marek
 - Člen | 1664
 
Ale vždyť parametry bez takové předpony patří k presenteru. S předponou patří k jednotlivým podkomponentám presenteru.