Routy blbnou na localhostu
- Toby91
- Člen | 9
Ahoj, tahám stránky z db (title, description, content, …) pri
vytváření menu si selectuju jejich id, při kliknutí si předám parametr a
vyselectuju požadovaný content…
url mám bez zásahu do routů takto: „localhost/presenter/action/?id=1“
když přidám do routu <id> tak to vypadá logicky takto:
„localhost/presenter/action/1“
včera jsem řešil jak nechat odkazy pomocí id ale aby to zobrazovalo záznam
„url“ z tabulky
tak jsem se dopracoval k něčemu takovému:
$router[] = new Route('<id>', array(
'presenter' => 'Main',
'action' => 'default',
'id' => array(
Route::VALUE => NULL,
Route::FILTER_IN => callback('RouterModel::getIdByUrl'),
Route::FILTER_OUT => callback('RouterModel::getUrlById'),
),
));
getIdByUrl a getUrlById:
public static function getIdByUrl($url){
return dibi::fetchSingle('SELECT [ref] FROM [reference] WHERE [url] = %s', $url);
}
public static function getUrlById($id){
return dibi::fetchSingle('SELECT [url] FROM [reference] WHERE [ref] = %i', $id);
}
funguje to perfektně, ale ne na localhostu :) … když sem to uploadnul na server šlo to v pohodě hned napoprvé, na localu mě třeba 2 odkazy ze 4 nefungujou jak by měly. Docela mě překvapilo když jsem za ‚<id>‘ v routu přidal ‚<id>.html‘, jak se aplikovala tato změna, která nemá s funkčností nic společného, tak vše fungovalo. Z toho mi vyplývá, že kód je dobře akorát je zakopanej pes někde jinde, takže jsem zkusil smazat cache, restartovat apache a nic :)stále to při navrácení routu na ‚<id>‘ blbne, a blbne to asi takto: když najedu na položku „O mně“ browser mi ukazuje cestu „/o-mne“, bohužel po přechodu na tuto stránku to v url vygeneruje např. „/kontakt“ – který mimochodem je taky v tabulce, ale nemá v url co dělat :-)
Má někdo zkušenost s takovouto záhadnou chybkou ? :)
EDIT: Vyřešeno, chyba byla způsobena cachovaním dat v prohlížeči …
Editoval Toby91 (18. 5. 2011 11:40)