nefungující překlad parametru v routě
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Marsme
- Člen | 75
Mám následující routu
$container->router[] = new Route('<presenter>/<id>',array(
'module' => 'Frontend',
'presenter' => 'Page',
'action' => 'create',
'id' => array(
Route::VALUE => NULL,
Route::FILTER_IN => function($url) use ($container){
//filtr pri prekladu z URL do parametru
if(is_numeric($url)){
return $url;
}else{
$pages = $container->route;
return $pages->translateUrlToId($url);
}
},
Route::FILTER_OUT => function($id) use ($container){
//filtr pri vytvareni URL z parametrů
if(!is_numeric($id)){
return $id;
}else{
$pages = $container->route;
return $pages->translateIdToUrl($id);
}
}
)
));
V šabloně generuji seznam následujícím způsobem.
<li n:foreach="$menu as $item"><a n:href="Page:create $item->id">{$item->name}</a></li>
Výsledek vygenerovaného odkazu je ‚http://localhost/frontend.page/create/1‘ přitom očekávám ‚http://localhost/page/odkazovana-stranka‘
Někde je problém v tom překladu ale nevím kde. Jak to upravit aby to fungovalo správně?