odstranění persistentních parametrů z URL
- pekinen
- Člen | 29
Zdravím, chci se zeptat, zda lze nějak pomocí definice Route odstranit
z URL persistentní parametry.
Vytváří se mi URL ve tvaru
http://example.com/?param1=1¶m2=2¶m3=1¶m4=2&action=default
.
Pomocí Routy:
$router[] = new Route('<param1>-<param2>/', array(
'presenter' => 'Page',
'param1' => NULL,
'param2' => NULL,
));
dostávám tvar URL
http://example.com/1-2/?param3=1¶m4=2&action=default
.
Chci se zbavit těch ostatních parametrů, které (zatím) nemám v Routě definované.
Děkuji za pomoc.
- Panda
- Člen | 569
Mělo by pomoci jim při vytváření odkazu nastavit výchozí hodnotu,
popř. NULL
:
$presenter->link('default', array('param1' => 1, 'param2' => 2, 'param3' => NULL, 'param4' => NULL));
Vzhledem k tomu, že jsem zatím vždycky měl výchozí hodnotu
persistentního parametru nedefinovanou (tedy NULL), tak nemohu říct, zda je
správně jim nastavit výchozí hodnotu nebo NULL
.
- pekinen
- Člen | 29
Panda napsal(a):
Mělo by pomoci jim při vytváření odkazu nastavit výchozí hodnotu, popř.
NULL
:$presenter->link('default', array('param1' => 1, 'param2' => 2, 'param3' => NULL, 'param4' => NULL));
Vzhledem k tomu, že jsem zatím vždycky měl výchozí hodnotu persistentního parametru nedefinovanou (tedy NULL), tak nemohu říct, zda je správně jim nastavit výchozí hodnotu nebo
NULL
.
Jenže já jim nechci měnit hodnotu. Tu stále potřebuju. ;)
- pekinen
- Člen | 29
Blizzy napsal(a):
Co tohle?
$router[] = new Route('<param1>-<param2>/', array( 'presenter' => 'Page', 'param1' => NULL, 'param2' => NULL, 'param3' => 1, 'param4' => 2, 'action' => 'default', ));
Tím se jich sice zbavím, ale pak budou jejich hodnoty konstantní a já je
potřebuju taky měnit…
Nebo se pletu?
Editoval pekinen (21. 8. 2009 12:42)
- Foowie
- Člen | 269
No, nějak se ty parametry k serveru dostat musí :)
Takže buď použij ajax (takže v řádku adresy ty proměnné nebudou
vidět), nebo si ty parametry ukládej do sessions (má to ale hodně nevýhod a
popravdě ani nevím jestli to někdo používá :)).
Možná ještě by to šlo posílat post metodou … nějaký hidden input,
místo poslání požadavku vložíš ten požadavek do inputu a pošleš
serveru ať si to pořeší)… ale osobně bych použil tak maximálně tu
první metodu…
- Panda
- Člen | 569
pekinen napsal(a):
Blizzy napsal(a):
Co tohle?
$router[] = new Route('<param1>-<param2>/', array( 'presenter' => 'Page', 'param1' => NULL, 'param2' => NULL, 'param3' => 1, 'param4' => 2, 'action' => 'default', ));
Tím se jich sice zbavím, ale pak budou jejich hodnoty konstantní a já je potřebuju taky měnit…
Nebo se pletu?
Mno nebudou konstantní, druhý parametr konstruktoru třídy
Route
je na výchozí hodnoty. presenter
je tam také
uveden a konstantní není…
A původně jsem dotaz špatně pochopil, takže se omlouvám.