Aplikace filtru (FilterRoute) i u jiných rout?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
uestla
Backer | 799
+
0
-

Pěkný pozdní večer.

Ve své aplikaci používám HosipLanův FilterRoute (přepsaný na nové namespaces), konkrétně následující pravidla:

use \Kdyby\Application\Routers\FilterRoute;

$defLang = 'cs';

// spec. routa
$route = $router[] = new FilterRoute('[<lang=' . $defLang . '>/]unique-part/<id [a-z0-9-]+>', 'TypePresenter:details');
$route->addFilter('id', 'Model::slugToId', 'Model::idToSlug');

// obecná routa
$router[] = new Route('[<lang=' . $defLang . '>/]<presenter>/<action>/[<id [1-9][0-9]*>/]', 'Homepage:default');

Na TypePresenter:details s předaným $id se odkazy generují zcela v pořádku. Problém nastává, když chci odkázat na jinou akci – konkrétně TypePresenter:edit – a rovněž předám parametr $id.

Nějakým způsobem dojde k „přeložení“ 'id' na základě pravidel u spec. routy (ačkoli by se mělo převádět podle routy obecné), tzn. v dané metodě modelu se z ID vytvoří požadovaný slug.

Kvůli tomu, že takto přeložený parametr id nevyhovuje masce u obecné routy, se jedn. parametry seřadí do klasické query URL (díky nejspodněji použitému SimpleRouteru).

Dělám někde chybu? Předem děkuji za odpověď.

uestla
Backer | 799
+
0
-

Vyřešeno díky panu @gmvaskovi.

Upravil jsem to i na gistu.