Schovat parametry v cestě pouze pro jeden presenter
- matronator
- Člen | 38
Zdravím, v PHP jsem víceméně začátečník a s Nette jsem začal před pár týdny. Četl jsem dokumentaci, hledal na netu, ale stejně pořád nějak nechápu jak fungujou ty Routy.
Mám PagesPresenter, který bere stránky z db a vykresluje je v default
templatu podle parametru. Momentálně cesty vypadají takhle:
domain.com/pages/default/about-us
a já bych potřeboval schovat
část cesty tak, aby se ukazovala pouze jako domain.com/about-us
,
nebo alespoň bez toho default domain.com/pages/about-us
.
Zkoušel jsem všechno možný v RouterFactory a buď se nic nestalo, nebo to rozbilo ostatní routy.
RouterFactory:
<?php
$router[] = $frontRouter = new RouteList('Front');
$frontRouter[] = new Route('sitemap.xml', 'Default:sitemap');
$frontRouter[] = new Route('sitemap', 'Default:sitemap');
$frontRouter[] = new Route('<presenter>/<action>/<slug>', 'Shop:default');
$frontRouter[] = new Route('<presenter>/<action>[/<htaccess>]', 'Default:default'); //most general route
?>
Zkoušel jsem Route('/<slug>', 'Pages:default');
,
Route('pages/<slug>', 'Pages:default');
a spoustu dalších,
ale bez úspěchu.
Any help appreciated!
- Ondřej Kubíček
- Člen | 494
tohle:
$frontRouter[] = new Route('pages/<slug>', 'Pages:default');
ti vygeneruje tohle – /pages/about-us
případně můžeš:
$frontRouter[] = new Route('<slug>', 'Pages:default');
to ti odchytí všechny /cokoli
- matronator
- Člen | 38
Tohle sem právě zkoušel a ty cesty se furt neměnili, ale dobrý, já sem
jenom idiot. Chyba nebyla v Routeru, ale v odkazech samotnejch, já myslel že
se ty odkazy sami přesměrujou podle Routeru a odkazoval jsem na
Pages:default $page->slug
. Někdy je fakt nejlepší se vyspat,
ráno to pak myslí líp. Každopádně díky za odpověď :)