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
+
0
-

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
+
+1
-

V presenteru mas 2 requesty.

  1. Application\Request (https://api.nette.org/…Request.html) – odkud presenter taha parametery z metody getParameters(). Je to trochu slozitejsi, ale rekneme takto.
  2. 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)