$router->withPath(.) způsobí chybu v Routing Debugger ???

m.brecher
Backer | 83
+
+2
-

Vytvořil jsem si ve třídě RouterFactory takovouto sadu rout:

public static function createRouter(): RouteList
{
    $router = new RouteList;
    $router->withPath('admin/')
        ->addRoute('', 'Admin:Entry:default')
        ->addRoute('<presenter>/<action>[/<id>]', ['module' => 'Admin'])
        ->end();
    $router->addRoute('', 'Article:homepage');
    $router->addRoute('[<url>]', 'Article:view');
    return $router;
}

Tyto routy fungují přesně jak požaduji:

  • /admin/presenter/action/id se přeloží na administrační presentery v modulu Admin,
  • /admin/ se přeloží na presenter Admin:Entry:default
  • / se přeloží na presenter Article:homepage
  • /nejaky-clanek se přeloží na Article:view, $url = nejaky-clanek

Co nefunguje správně je Routing Debugger – panel pro routy v Tracy Bar – ten zobrazuje úplně jiné hodnoty úřekladů než Router ve skutečnosti přeloží !!!

Příklad: /admin/pricelist/create-table ⇒ se správně přeloží na Admin:Pricelist:createTable

ale panel zobrazí překlad na Admin:Admin:pricelist:

Příklad /admin/ ⇒ se správně přeloží na Admin:Entry:default

ale panel zobrazí překlad na Article:view

Příklad /admin /pricelist/update-table/2 ⇒ se správně přeloží na Admin:Pricelist:updateTable

ale panel zobrazí neplatný překlad „no route“

Myslím, že nikde nemám nic špatně a že chyba bude v Router Debugger, neporadil by někdo, jak to lépe udělat ??

David Grudl
Nette Core | 7636
+
+6
-

Opraveno v nette/application 3.1-dev

emololftw
Člen | 33
+
0
-

Ahoj, jen z dovolením využiju vlákno pro maličkou otázku. Mohu použít metodu withPath() jako prefix delšího zápisu parametrů? Mam mnoho rout kde používám: //<customerId>.%domain%/<locale=cs_CZ cs_CZ|en_US|de_DE>/monitoring[/<module>] pomocí metody jsem zkoušel tento string narvat jako parametr metody, ale neúspěšně. Teď to řeším, že mám konstantu v RouterFactory a v každé routě uvadím self::PREFIX ..... Chci se zeptat jestli je i k takovým případům metoda withPath() určena.

Děkuji!

David Grudl
Nette Core | 7636
+
0
-

Ne, withPath nemuže obsahovat parametry.