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