Přemazávání parametru při nastavení předchozího na NULL

d3tr1tus
Člen | 52
+
0
-

Ahoj mám eshop kde na stránce s produkty mám nastavený renderDefault takto

public function renderDefault($category, $subCategory = NULL, $type = NULL, $size = NULL)

při filtrování když nastavím size na nějakou hodnotu a type je NULL tak to chápe PHP tak, že size je vlastně type a uloží velikost do type čimž mi filtr vrátí NULL. Redirect jsem nastavil takto

$this->redirect('Shop:default', array('category' => $params['category'], 'subCategory' => $params['subCategory'], 'type' => $params['type'], 'size' => $size));

routa na to vypadá takhle

$module[] = new Route('obchod/<category>[/<subCategory>][/<type>][/<size>]', 'Shop:default');

Poraďte prosím.

GEpic
Člen | 562
+
+3
-

To ta routa, tvar pro type i size je úplně stejný a když vynecháš type, tak Router nepozná, co ten parametr vlastně je.

Zkus upravit routu na:

$module[] = new Route('obchod/<category>[/<subCategory>][/type-<type>][/size-<size>]', 'Shop:default')

Editoval GEpic (28. 4. 2018 11:13)

d3tr1tus
Člen | 52
+
0
-

GEpic napsal(a):

To ta routa, tvar pro type i size je úplně stejný a když vynecháš type, tak Router nepozná, co ten parametr vlastně je.

Zkus upravit routu na:

$module[] = new Route('obchod/<category>[/<subCategory>][/type-<type>][/size-<size>]', 'Shop:default')

díky moc teď už to funguje :)