Pořadí volitelných paramterů v routeru
- Anton
- Člen | 2
Ahoj,
snažím se, aby mi fungovali tyto routy
- cs/produkt
- cs/produkt/vse/akce
- cs/produkt/vse/exclusive
- cs/produkt/vse/akce/exclusive
- cs/produkt/vse/domacnost
- cs/produkt/vse/domacnost/akce
- cs/produkt/vse/domacnost/exclusive
- cs/produkt/vse/domacnost/akce/exclusive
V RouteFactory mám tuhle routu.
<?php
$frontRouter[] = new Route('cs/produkt[/<gender>][/<category>][/<event>][/<exclusive>]', [
'presenter' => 'Products',
'action' => 'default',
'lang' => 'cs',
'gender' => [
Route::VALUE => NULL,
Route::FILTER_STRICT => TRUE,
Route::FILTER_TABLE => [
'vse' => 'all',
'panske' => 'men',
],
],
'category' => [
Route::VALUE => NULL,
Route::FILTER_STRICT => TRUE,
Route::FILTER_TABLE => [
'domacnost' => 'household',
],
],
'event' => [
Route::VALUE => FALSE,
Route::FILTER_TABLE => [
'akce' => 1,
],
],
'exclusive' => [
Route::VALUE => FALSE,
Route::FILTER_TABLE => [
'exclusive' => 1,
],
],
]);
?>
Problém je takový, že když chci na stránku
cs/produkt/vse/akce
, tak mi to routu ani nechytne. Ano, je to
proto, že mám Route::FILTER_STRICT => TRUE
, ale kdybych to
nastavený neměl, tak mi vznikne url taková
?gender=vse&category=1
. A to taky nechci.
Jak docílit toho, aby při url ?gender=vse&event=1
se
opravdu vygenerovala cs/produkt/vse/akce
adresa?
Díky za odpověď.
- David Matějka
- Moderator | 6445
ahoj, myslim, ze budes muset do masky pridat validacni pravidla na ty povoleny vyrazy
new Route('cs/produkt[/<gender vse|panske>][/<category domacnost>][/<event akce>][/<exclusive exclusive>]'