jak zjistit část adresy pomocí httpRequest

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
kasparek
Člen | 43
+
0
-

Ahoj,
snažím se získat část textu z url ale nějak se mi to nedaří

v RouterFactory.php

$router[] = $frontRouter = new RouteList('Front');
$frontRouter[] = new Route('offer/<action>[/<type>][/<id>]', 'Offer:default');

a chtěl bych získat tu hodnotu type

v presenteru

	private $httpRequest;

	public function injectHttpRequest(Nette\Http\IRequest $httpRequest)
	{
		$this->httpRequest = $httpRequest;
	}

a zkouším volat pomocí

$this->httpRequest->getUrl()->path

to vrátí "/offer/default/max" (18)

a nebo volám pomocí

$this->httpRequest->getQuery('type')

ale to mi vrací NULL

tak nevím
Díky za rady ;)

Michal Vyšinský
Člen | 608
+
0
-

Ahoj, do action nebo render metody presenteru si dej proměnnou (parametr) $type a hodnotu z routy tam budeš mít. Nemusíš nic takového vymýšlet.

public function actionDefault($type) {

}
kasparek
Člen | 43
+
0
-

no jasně proč mě to rovnou nenapadlo :)

	private $type;

	public function actionDefault($type) {
		$this->type = $type;
	}

a volám přes $this->type;

Díky (vyřešeno)

Editoval kasparek (13. 6. 2014 20:33)

MartinitCZ
Člen | 580
+
0
-

Nevím, proč jí ukládaš do $this->type, ale nestačilo by volat $this->getParameter('type') tak, kde jí potřebuješ.?

kasparek
Člen | 43
+
0
-

martinit napsal(a):

Nevím, proč jí ukládaš do $this->type, ale nestačilo by volat $this->getParameter('type') tak, kde jí potřebuješ.?

Protože tohle jsem celou dobu hledal ale nemohl najít
Díky moc pomohlo ;)