automatické přesměrování routy

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

Dobrý den,
mám malý problém, udělal jsme si pravidlo

$router[] = new Route('zaznam/<id>', array(
	'presenter' => 'Zaznamy',
	'action' => 'show',
	'id' => NULL,
));

a funguje to správně, když zadám web.cz/zaznam/25 objeví se požadovaná stránka, bohužel s tím efektem, že se url sama přesměruje na web.cz/zaznam/show/25. Jak to potlačit?

Děkuji

tomolas
Člen | 66
+
0
-

No to je zvlastne. Ta routa ktoru si napisal, by mala naozaj presmerovat na zaznam/id-clanku. Nemas nahodou pred touto routou v bootstrap.php este nejaku inu, ktora by mohla sposobit to presmerovanie?

KillPrd
Začátečník | 110
+
0
-

Ahoj mám podobný problém, strukturu webu mám udělanou na FrontModule a AdminModule.
routy mám

$router[] = new Route('admin/<presenter>/<action>/<id>', array(
        'module' => 'Admin',
        'presenter' => 'Default',
        'action' => 'default',
        'id' => NULL,
    ));

	$router[] = new Route('<presenter>/<action>/<id>', array(
        'module' => 'Front',
        'presenter' => 'Default',
        'action' => 'default',
        'id' => NULL,
    ));

problém nastava když si udělám menu položky a snažím se udělat odkaz na kategorie url tvořím takto

<li><a href="{link Kategorie, 'id' => $item->id}">{$item->nazev}</a></li>

Výsledná url vypadá takto
http://localhost/…/kategorie/1
všude cpe default.
a navíc nenačte PRESENTER KategoriePresenter.php což je také divné… někde se vloudila chybka…

Aurielle
Člen | 1281
+
0
-

Nemáš ještě nějaké jiné routy?

Ondřej Mirtes
Člen | 1536
+
0
-

KillPrd: Ke Kategorie patri dvojtecka, takhle se ti nacetla action kategorie aktualniho presenteru.

KillPrd
Začátečník | 110
+
0
-

Ondřej Mirtes napsal(a):

KillPrd: Ke Kategorie patri dvojtecka, takhle se ti nacetla action kategorie aktualniho presenteru.

v případě že dodám dvojtečku tedy url je

document_root/kategorie/default/2

pak konecna url je zase spatne teda podle me protože template to hleda tady. pritom akci mám kategorrie i render tedy template by mel byt kategorie.phtml

templates/FrontModule/Kategorie/default.phtml

Editoval KillPrd (11. 9. 2010 11:00)

Aurielle
Člen | 1281
+
0
-

Teď se ti odkazy generují správně…

Ondřej Mirtes
Člen | 1536
+
0
-

Tak se rozhodni, jestli chceš Presenter:action Kategorie:default nebo Default:kategorie.

KillPrd
Začátečník | 110
+
0
-

Ondřej Mirtes napsal(a):

Tak se rozhodni, jestli chceš Presenter:action Kategorie:default nebo Default:kategorie.

Problem je asi v tom že ma predstava byla ta že odkaz bude pouze /kategorie/1
A hlavne vem to cert kdfyž tam je default ale problem je ze mi to nenacte promenne z presenteru a to ja asi kamen urazu. jiz jednou jsem docilil toho ze jsem mel adresu tak jak jsme potreboval a dokonce to bralo i presenter nicmene nesel mi udelat dalsi odkaz na clanek stale to hazelo odakz na kategorii

tak nevin kde je vlastne problem protoze pokud ma spolupracovat nazev presenteru v nem nazev akce s nazvem layoutu tak to nefunguje…

KillPrd
Začátečník | 110
+
0
-

Tak bych Vám chtěl poděkovat už jsem na to přišel

řešení Routy:

$router[] = new Route('admin/<presenter>/<action>/<id>', array(
        'module' => 'Admin',
        'presenter' => 'Default',
        'action' => 'default',
        'id' => NULL,
    ));

	$router[] = new Route('kategorie/<id>', array(
        'module' => 'Front',
        'presenter' => 'Kategorie',
        'action' => 'kategorie',
        'id' => NULL,
    ));

	$router[] = new Route('clanek/<id>', array(
        'module' => 'Front',
        'presenter' => 'Clanek',
        'action' => 'clanek',
        'id' => NULL,
    ));


	$router[] = new Route('<presenter>/<action>/<id>', array(
        'module' => 'Front',
        'presenter' => 'Default',
        'action' => 'default',
        'id' => NULL,
    ));

url link v layoutu je:

<a href="{link Kategorie:kategorie, 'id' => $item->id}">
a na clanek:
<a href="{link Clanek:clanek, 'id' => $todo->id}">

výsledná url je :

document_root/kategorie/1
a clanek:
document_root/clanek/1