Regex na přesná slova v routě
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.

- iwory
 - Člen | 147
 
Zdravím,
zkuším napsat regex na přesná slova v routě.
Mám routu:
$router[] = new Route('nase-piva[/<package [lahvove|sudove|ostatni]+>]', array(
	'presenter' => 'Product',
	'action' => 'default',
	'package' => array(
		Route::FILTER_TABLE => array(
			'lahvove' => 1,
			'sudove' => 2,
			'ostatni' => 3
		),
	)
));
Potřebuju aby se parametr „package“ poslal pouze když obsahuje jedno ze tří výrazů. Zkoušel jsme různé parametry, ale nějak toho nemůžu docílit.
Děkuji

- akadlec
 - Člen | 1326
 
@iwory: pokud jsem tě dobře pochopil chceš mít v dané routě povoleny jen vypsané hodnoty a nic jiného. V tomto případě tam podle dokumentace stačí přidat Route::FILTER_STRICT ⇒ TRUE
$router[] = new Route('nase-piva[/<package>]', array(
    'presenter' => 'Product',
    'action' => 'default',
    'package' => array(
        Route::FILTER_TABLE => array(
            'lahvove' => 1,
            'sudove' => 2,
            'ostatni' => 3
        ),
	Route::FILTER_STRICT => TRUE
    )
));
ve vygenerované routě budeš mít lahvove/sudove/ostatni a router to pak přeloží na 1/2/3