Perzistetní proměná a odkazy – vytváří se jinak

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

Takhle vypada moje routa:

$router[] = new Route('eshop/<action>[/<page>][/slug]', array(
            'module' => 'Front',
            'presenter' => 'Eshop',
            'action' => 'default',
            'page' => 1,
            'slug' => NULL
        ));

page predstavuje cislo stranky s produkty a slug by mel predstavovat upraveny nazev produktu pro adresy (Řidítka na kola → riditka-na-kola)

V prezenteru nastavuji oboje jako perzistetní proměnné:

/** @persistent */
public $slug;

/** @persistent */
public $page;

Kdyz vytvorim odkaz na jinou stranku pomoci:

$this->link('this', array('page' => 5)

Tak se vygeneruje hezky odkaz napr eshop/test/5

Kdzy ale udelam to same pro slug

$this->link('this', array('slug' => 'slugtest')

Tak mi vznikne neco takovehleho: eshop/test?slug=slugtest&page=1 ale ja chci eshop/test/slugtest

Co delam spatne? Diky

nanuqcz
Člen | 822
+
0
-

Ahoj,
chybí ti okolo slug špičaté závorky, myslím že to bude tím.

$router[] = new Route('eshop/<action>[/<page>][/<slug>]', array(
            'module' => 'Front',
            'presenter' => 'Eshop',
            'action' => 'default',
            'page' => 1,
            'slug' => NULL
        ));
simPod
Člen | 383
+
0
-

Asi jsem slepej, v cem je ten kód od tebe jiný než ten muj?

Vojtěch Dobeš
Gold Partner | 1316
+
0
-
Tvoje $router[] = new Route('eshop/<action>[/<page>][/slug]', array(
nanuqcz $router[] = new Route('eshop/<action>[/<page>][/<slug>]', array(

Editoval vojtech.dobes (6. 5. 2012 17:00)

simPod
Člen | 383
+
0
-

ah see…

ja si precetl misto zavorek uvozovky, tak jsem premyslel co to je za zvlastni termin a koukal kde mi chybi jake uvozovky. diky, funguje!