routing – odstranění paramtetru při přesměrování

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

Ahoj,

mám routu

self::$router[] = new Route('pricing', 'Pricing:server', Route::ONE_WAY);

Potřebuju když zadám url s parametrem např. /pricing?test=test tak aby při přesměrování ten parametr už nebyl. Jak toho docílím?

Díky!

Editoval Mira8 (2. 7. 2017 15:06)

Mira8
Člen | 36
+
0
-

Nikdo nic? :(

Mira8 napsal(a):

Ahoj,

mám routu

self::$router[] = new Route('pricing', 'Pricing:server', Route::ONE_WAY);

Potřebuju když zadám url s parametrem např. /pricing?test=test tak aby při přesměrování ten parametr už nebyl. Jak toho docílím?

Díky!

matopeto
Člen | 395
+
0
-

hm, co napr takto v prezentru:

function actionServer($test) {
	if ($test != null) {
		$this->redirect("Pricing:server");
	}
}

keby si napisal konkretne k comu to potrebujes bolo by to mozno lepsie a vedeli by sme lepsie poradit…

Editoval matopeto (4. 7. 2017 12:01)

Mira8
Člen | 36
+
0
-

Jak ale v routě naplním test? Respektivě jde mi o jakýkoliv parametr test=, id=, node=.. prostě cokoliv, tak aby se při redirectu veškeré GET parametry odstranili. Nic víc :)

Zkoušel jsem třeba:

self::$router[] = new Route('server? <test>',
            ['presenter' => 'Pricing', 'action' => 'server', 'test'],
            Route::ONE_WAY);

ale to funguje jen pro konkrétní parametr ,,test'', potřeboval bych to nějak zobecnit na jakékoliv.

Když tedy třeba zadám /server?node=hbjhhjv, tak aby proběhl redirect na /pricing/server.
Také presenter Server neexistuje, pouze Pricing s akci server.

Díky!

matopeto napsal(a):

hm, co napr takto v prezentru:

function actionServer($test) {
	if ($test != null) {
		$this->redirect("Pricing:server:");
	}
}

keby si napisal konkretne k comu to potrebujes bolo by to mozno lepsie a vedeli by sme lepsie poradit…

matopeto
Člen | 395
+
0
-

Preco potrebujes naplnat v route test, ked ho chces odstranit? :)

Ak chces nieco take, ze zadas url parameter, ten si chces niekde zapamat a potom pracovat s nim a pritom ho nemat v url, tak si ho uloz v action metode niekde do session/cookies a redirectuj na bez parametru, potom si ho znova zo session/cookies vytiahnes

Mira8
Člen | 36
+
0
-

vubec nic takoveho nepotrebuju, ani jinde s nim pracovat, potrebuju ho jen zahodit :) Chci jen osetrit to, ze kdyz nekdo tu url zda s parametry tak aby se zahodili. Nic vic :)

matopeto napsal(a):

Preco potrebujes naplnat v route test, ked ho chces odstranit? :)

Ak chces nieco take, ze zadas url parameter, ten si chces niekde zapamat a potom pracovat s nim a pritom ho nemat v url, tak si ho uloz v action metode niekde do session/cookies a redirectuj na bez parametru, potom si ho znova zo session/cookies vytiahnes

matopeto
Člen | 395
+
0
-

Co nieco take:

function startup() {
	if (!empty($this->getHttpRequest()->getQuery()) {
 		 $this->redirect('this');
	}
}

pripadne v konkretnom action ak chces zahadzovat parametre nie pre cely prezenter ale pre akciu

Editoval matopeto (4. 7. 2017 12:32)

Oli
Člen | 1215
+
+3
-

Proc to potrebujes? Spravne by to imho melo ty parametry ignorovat. Viz napriklad zde na foru: ?test=123
https://forum.nette.org/…presmerovani?…