Routování – kategorie a parametry
- Bohosu
- Člen | 24
Zdravím Nette komunitu :-)
Jsem začátečník co se týče Nette, ale snad se do toho pomalu již dostávám :-) O co bych vás ale chtěl poprosit, je popsání vytvoření routování a implementace pressenterů pro následující situaci. (Omlouvám se, ale i když jsou tutoriály dobře napsané, tohle mi hlava asi moc nebere)
Mám web, kde mám sekce Úvod, nabídka atd…
Když zadám adresu:
doména/nabidka Chci, aby se zobrazila stránka, kde bude třeba pár slov
o nabídce
doména/nabidka/fotbal Chci aby se zobrazila stránka kde bude něco
o fotbale
(to samé třeba i pro hokej, tenis)
doména/nabídka/detail/1210 – aby se vypsaly informace třeba o výrobku
s ID = 1210 v databázi
Jaké tedy musím mít udělané routy v bootstrapu a jak mají vypadat
presentery?
Chápu dobře, že musím mít presenter Nabidka, který bude obsahovat
funkce:
actionDetail, actionFotbal,actionTenis,…
To je ještě v pořádku, to funguje, ale potřeboval bych poradit, jak
zajistit abych když zadám:
doména/nabidka/blbost – aby jsem se třeba přesměroval na
Nabidka:chyba
domena/nabidka/detail/1210/blbost/dalsiBlbost – aby se to také
přesměrovalo třeba na Nabidka:chyba.
Tohle se mi nedaří. Když zadám „správnou“ adresu, je to OK, ale když zadám některou z blbostí o dva řádky výše, hodí mi laděnka chybu, že třeba neexistuje šablona blbost, nebo že …/nabidka/detail/1210/blbost/dalsiBlbost zase vypíše že to je neplatný HTTP request.
Prosím o radu, jak a kde naprogramovat, co z routy brát a co ne. Aby to tak bylo ošetřený proti podobným špatným url. Díky moc a omlouvám se za složitý popis :(
$router[] = new Route('index.php', array(
'presenter' => 'Uvod',
'action' => 'default',
), Route::ONE_WAY);
$router[] = new Route('nabidka/<action>/<id>', array(
'presenter' => 'Nabidka',
'action' => 'seznamSportu',
'id' => NULL,
));
$router[] = new Route('nabidka/fotbal/<id>', array(
'presenter' => 'Nabidka',
'action' => 'fotbal',
'id' => NULL,
));
$router[] = new Route('<presenter>/<action>/<id>', array(
'presenter' => 'Uvod',
'action' => 'default',
'id' => NULL,
));
--\
Editoval Bohosu (23. 4. 2010 19:00)