<presenter cities>/<action> na hezkou URL

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
j.salak
Člen | 42
+
0
-

Zdravím, poměrně triviální situace, ale sem nějak v pasti.

Mám města a v nich různé akce, a potřebuji aby se mi zobrazovala hezka URL, tzn. pokud volám: /ceska-republika/hlavni-mesto-praha/praha/galerie tak potřebuji aby se mi zobrazilo „Cities:galerie $id“ a hezka URL adresa mi zůstala (id najdu podle slugu „/ceska-republika/hlavni-mesto-praha/praha/“ to neni problém). Když zavolám cities/galerie?id=1 tak potřebuju aby mě to přesměrovalo na /ceska-republika/hlavni-mesto-praha/praha/galerie

Jak toto vyřešit?

Díky

Felix
Nette Core | 1196
+
0
-

Tohle muzes vyresit pres router. Jak mas nastaveny router?

$router = new Route('...', [
	'presenter' => 'Cities',
	'action' => 'galerie',
	'id' => [
		Route::FILTER_IN => function($slug) {
			// URL (slug) na ID
		},
		Route::FILTER_OUT => function ($id) {
			// ID na URL (slug)
		},
	]
]);

Psano z hlavy. Nicmene, Nette by melo samo zajistit auto-canonicalizaci.