Parametr v routě, který akceptuje vše vč. get parametrů
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- nettolog
- Člen | 68
Potřeboval bych routu, která bude mít jediný parametr (v mém případě url adresu na externí web), který přijme naprosto vše, včetně lomítek i get parametrů.
$router = new RouteList;
$router[] = new Route('routa/<url .+>', 'Test:default', Route::SECURED);
$container->addService('router', $router);
Tato routa přijme i odkaz typu http://example.com/neco
.
Přijme i http://example.com/neco?neco=neco
, ale v presenteru
($this->getParameters();
) už se řetězec s get parametry
neobjeví. Jde nějak docílit toho, aby tam byly i get parametry jako
řetězec?
Editoval nettolog (28. 2. 2016 15:44)
- Felix
- Nette Core | 1196
V presenteru mas 2 requesty.
Application\Request
(https://api.nette.org/…Request.html) – odkud presenter taha parametery z metodygetParameters()
. Je to trochu slozitejsi, ale rekneme takto.Http\Request
(https://api.nette.org/…Request.html) – ktery ma vsechny request parametry (GET/POST/HEADERS).
Takze ty si ji muzes vytahnout takto pres
$presenter->getHttpRequest()->getQuery()
(https://api.nette.org/…ter.php.html#…).
URL: example.com?a=b
$params = $presenter->getHttpRequest()->getQuery(); // ['a' => 'b']
$a = $presenter->getHttpRequest()->getQuery('a'); // b
Editoval Felix (28. 2. 2016 16:40)