shoda více rout (dynamické přidávání)

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

Zdravím, potřeboval bych povysvětlit jednu cestu rout.
Budu chtít vytvořit databázi koupališť celé ČR (příklad), budy využívat hodně věcí, takže si udělám routu <presenter>/<action>/<id>, abych to nemusel definovat. Nicméně přichází problém, když budu chtít udělat filtr podle krajů a url bude ceska-republika/liberecky-kraj/. Jak to řešit? Předvygenerovat takové url dynamicky v bootstrapu? Nebo existuje něoc jako propadnutí, že bych to nějak testoval?

Díky za rady, nechci začít špatně :)

pEeLL
Člen | 23
+
0
-

udelas to jednoduse prvni das routu s kraji a pokud url nebude zacinat na to ceska republika tak to projde na druhou obecnou routu

<?php
	$router[] = new Route('ceska-republika/<kraj>/', array(
		'presenter' => 'presenter kam chces jit',
		'action' => 'akce kam chces jit',
		'kraj' => NULL,
	));

	$router[] = new Route('<presenter>/<action>/<id>', array(
		'presenter' => 'Dashboard',
		'action' => 'default',
		'id' => NULL,
	));
?>
onny
Člen | 67
+
0
-

dobře, díky za radu, a teď otázka – je to výhodné i když tam budu mít 140 zemí? Pro všechny to mít připravené (předvygenerované z db například)?

Aurielle
Člen | 1281
+
0
-

Tak pak můžeš udělat

$countries = $this->model->fetchCountries();
$router[] = new Route('<country ' . implode($countries, '|') . '>/<kraj>/', array(
	    'presenter' => 'Country',
	    'action' => 'akce',
	    'kraj' => NULL,
));
Ondřej Mirtes
Člen | 1536
+
0
-

…což je zabiják, pokud pole $coutries bude obsahovat hodně položek.

Při větším počtu bych to viděl už na vlastní router, anebo smíření se s nějakou ošklivější URL.

onny
Člen | 67
+
0
-

díky za všechny názory