Filtry rout podle aktuální action a jazyka
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- jann
- Člen | 30
Zdravím, mám následující routu a potřeboval bych vědět, jakým způsobem do těch callbacků FILTER_IN a FILTER_OUT přidám informaci o aktuálním jazyce (lang). Také bych v těch funkcích potřeboval aktuální action, jelikož ty filtry se budou aplikovat jen na 2 akce. Jaký je nejvhodnější způsob řešení?
<?php
$router[] = new Route('cs/<presenter #cs-presenter>/<action>/<id>',array(
'module' => 'Front',
'lang' => 'cs',
'presenter' => 'Homepage',
'action' => 'default',
'id' => array(
Route::VALUE => 0, // default value
Route::FILTER_IN => callback('LibraryModel::getIdByUrl'),
Route::FILTER_OUT => callback('LibraryModel::getUrlById'),
),
));
?>
Taky mám problém s voláním toho callbacku. Třída
LibraryModel
je v modulu FrontModule
a pokud mám na
začátku třídy namespace FrontModule;
(jako u všech tříd
daného modulu), tak callback nelze zavolat:
InvalidStateException
Callback 'LibraryModel::getUrlById' is not callable.
Díky za jakékoliv rady…