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 startup
e 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.