Routa bez <presenter> pro jeden jediny presenter
- Kurtas
- Člen | 109
Zdar,
tapu nad tim jak udelat routu jen pro jeden jediny presenter pro presenter Front:Default bych chtel mit URL ve formatu www.domain.com\action
ostatni presentery www.domain.com\presenter\action
zkousel jsem to takto,
$router[] = $frontRouter = new RouteList('Front');
$frontRouter[] = new Route('<action>[/<id>]', 'Default:default'); //Teto route vyhovuje i URL www.domain.com\presenter\action
$frontRouter[] = new Route('<presenter>/<action>[/<id>]', 'Payment:default');
Verim ze to nejak lze, snad nekdo poradi
Diky moc Mira
- jiri.pudil
- Nette Blogger | 1029
Nemám teď možnost to vyzkoušet, ale takhle z hlavy mě napadá použít
jen jednu routu s výchozí hodnotou Default
a nastavit
presenter
jako volitelný:
$frontRouter[] = new Route('[<presenter>/]<action>[/<id>]', 'Default:default');
- Kurtas
- Člen | 109
To jsem zkousel ale nefunguje to, actions z Default preresenteru jsou
prekladany jako presenter aneb
pro www.domain.com/about
Cannot load presenter ‚Front:About‘, class
‚FrontModule\AboutPresenter‘
- Michal Vyšinský
- Člen | 608
Já používám toto (resp. stejnou strukturu) pro administrační presenter:
//routa pro administraci čili www.example.com/admin/cokoliv
$frontRouter[] = new Route('/admin/<action>[/<id>]', 'Admin:default');
//routa pro ostatní presentery
$frontRouter[] = new Route('<presenter>/<action>[/<id>]', 'Payment:default');
Editoval CherryBoss (20. 11. 2012 17:10)
- Kurtas
- Člen | 109
Ano, tohle funguje jenze problem je, ze ja to potrebuji pro frontend modul (homepage) to by se mi pak generovali url ve tvaru www.example.com/NECO/**action** coz je nezadouci.
Edit: CherryBoss pro tvoje chovani by bohate stacila jedna routa ne?
$frontRouter[] = new Route(‚<presenter>/<action>[/<id>]‘,
‚Payment:default‘);
Editoval Kurtas (20. 11. 2012 21:49)
- Aearsis
- Člen | 57
Routa musi nejakym zpusobrm rozlisit, jestli je „about“ presenter nebo action. Docilis toho bud vyjmenovanim akci onoho presenteru, nebo jmen ostatnich presenteru jako parametr route:
$router[] = new Route('/<action edit|show|delete>[/<id>]', 'Whatever:default');
$router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
(z hlavy)
Samozřejmě pak nesmíš mít presentery „show“, „edit“ ani „delete“.