Komponenta v komponentě a handle / pěkná url adresa
- Who8MyDog
- Člen | 1
Zdravím,
mám tu menší otázku jak udělat routu na komponentu, která je v komponentě a v ní je handle.
Momentální url adresa je:
/obyvaci-pokoj?categoryListingControl-default1-newProductsListingControl-page=4&do=categoryListingControl-default1-newProductsListingControl-loadNext
Routa vypadá takto:
$module[] = new Route('[<locale=cs cs|en>/]<slug .+>[/<page [0-9]+>]', [
"presenter" => "Products",
"action" => "default",
"slug" => [
Route::FILTER_IN => function ($slug) {
$category = $this->categoriesLangsRepository->findBy(['url' => $slug])
->select("categories_langs.url")
->where('categories.deleted = 0 AND categories.hidden = 0')
->fetch();
if (!$category) {
throw new Nette\Application\BadRequestException();
}
return $slug;
}
]
]);
Pokud jsem zkusil místo page nastavit parametr z komponenty a do taky.
$module[] = new Route('[<locale=cs cs|en>/]<slug .+>[/<categoryListingControl-default_1-newProductsListingControl-page [0-9]+>]', [
"presenter" => "Products",
"action" => "default",
"slug" => [
Route::FILTER_IN => function ($slug) {
$category = $this->categoriesLangsRepository->findBy(['url' => $slug])
->select("categories_langs.url")
->where('categories.deleted = 0 AND categories.hidden = 0')
->fetch();
if (!$category) {
throw new Nette\Application\BadRequestException();
}
return $slug;
}
],
"do" => "categoryListingControl-default_1-newProductsListingControl-loadNext"
]);
Tak pěkné URL adresy na stránkovaní fungují. Ale bohužel se k tomu parametru nedostanu.
getParameters(); -> mi vrátí pole
array (4)
slug => "obyvaci-pokoj" (13)
action => "default" (7)
do => "categoryListingControl-default_1-newProductsListingControl-loadNext" (67)
locale => "cs" (2)
Dalším problémem je, že by jsem potřeboval i další do na categoryListingControl-default1-filtrControl-setFiltrForm, kde mi chodí categoryListingControl-default1-filtrControl-data
array (3)
0 => array (2)
name => "inStock_Skladem;Na objednávku"
value => "0"
1 => array (2)
name => "price_min"
value => "330 Kč"
2 => array (2)
name => "price_max"
value => "43393 Kč"
Nějaké nápady jak udělat takovou routu ?