Možná chyba v routování?

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

Chtěl jsem jen tak ze srandy zkusit vypnout všechny routy co sem měl a dát jen tuto:

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

Bohužel, MATCH fungoval dobře (až na to že se mi místo Default:Default:default nezobrazilo nic), ale linky se už negenerovaly.

Tato už funguje správně:

<?php
$router[] = new Route(
    '<module>/<presenter>/<action>/<id>',
    array(
        'module' => 'Pages',
        'presenter' => 'View',
        'action' => 'default',
        'id' => NULL,
    )
);
?>

Správný MATCH i CONSTRUCT.

Nevíte s čím by mohl byt problém? Že by se mu nelíbilo „Default“ ?

Edit: Nejnovější revize.

Editoval Mas3r (19. 2. 2009 15:00)

PetrP
Člen | 587
+
0
-

Mas3r napsal(a):

Bohužel, MATCH fungoval dobře (až na to že se mi místo Default:Default:default nezobrazilo nic), ale linky se už negenerovaly.
Nevíte s čím by mohl byt problém? Že by se mu nelíbilo „Default“ ?

Co přesně znamená že se nezobrazovalo nic? Jako že to generovalo adresu / nebo se zobrazovala prázdná stránka?

Jestli je to prvni problém tak změna tady:

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

Sice je to nesmysl mít url Default/Default/ ;]

Jod
Člen | 701
+
0
-

A máš tam taký modul Default a presenter Default?
Url Default/default mať nebude, keď je to defaultna routa.

Mas3r
Člen | 116
+
0
-

Ano mam modul Default, v něm presenter Default s view default :)

PetrP: Když budu mít jen tuto routu, tak se to po.. . Nechápu proč to teď nejde, dříve to fungovalo.

Vyhazuje to chybu např: error: No route for Pages:View:default(id=2)

Mas3r
Člen | 116
+
0
-

Nemůžete to někdo otestovat? Zkusit tu routu? Potřeboval bych to mít funkční na ukázání, že „Odkazy v Nette se dají řešit jako poslední“ :(

Proki
Člen | 66
+
0
-

Přesně tohle jsem řešil předevčírem, taky mám aplikaci rozdělenou do modulů a zatím nechci řešit podobu URL adres.

Nakonec jsem to vyřešil vložením téhle jediné routy (nevím proč, ale parametr module nefunguje… není to bug?):

<?php
$router[] = new SimpleRouter(array(
	'presenter' => 'Default:Default',
	'action' => 'default'
));
?>

Editoval Proki (20. 2. 2009 19:40)

Mas3r
Člen | 116
+
0
-

Jo, nefunguje. To bude asi BUG.

David Grudl
Nette Core | 8152
+
0
-

Není to bug, prostě SimpleRouter nezpracovává parametr module.

Mas3r
Člen | 116
+
0
-

Ale mě nefungoval parametr module ani na Route