Předávání parametrů v URL (jsou-li zadány)

emololftw
Člen | 79
+
0
-

Zdravím všechny! Měl bych dotaz, zda-li jde jednodušeji předávat parametry pomocí URL. Mám hlavní presenter se šablonou, která bude mít cca 10 akcí a všude předávám stejné parametry. Ukázka kódu:

startup() metoda, kde řeším defaultní parametry, je-li například místo INT zadán STRING:

public function startup(): void
{
    parent::startup();

    $this->template->p = [];
    $this->template->p['device_id'] = (Validators::isNumericInt($this->getParameter('device_id') ) ? (int)$this->getParameter('device_id') : 4314);
    $this->template->p['shift_id'] = (Validators::isNumericInt($this->getParameter('shift_id') ) ? (int)$this->getParameter('shift_id') : Shift::timestamp());
}

Pomocí akcí předávám parametry:

public function actionMonthlyUsage(int $shift_id, int $device_id): void
{
    $this->setView('monthly_usage', $shift_id, $device_id);
}
public function actionMonthProduced(int $shift_id, int $device_id): void
{
    $this->setView('MonthProduced', $shift_id, $device_id);
}
public function actionOverview(int $shift_id=0, int $device_id=0): void
{
    $this->setView('overview', $shift_id, $device_id);
}

V Latte potom každý odkaz tvořím pomocí:

<li id="tab1" n:class="$presenter->isLinkCurrent('Detail:overview') ? active"><a n:href="Detail:overview $p['shift_id'], $p['device_id']">Výrobní informace</a></li>
<li id="tab2" n:class="$presenter->isLinkCurrent('Detail:MonthlyUsage') ? active"><a n:href="Detail:MonthlyUsage $p['shift_id'], $p['device_id']">Měsíční využití</a></li>

Dotaz spočívá v tom, že nevím jestli je elegantní řešení mít 10 metod actionXXX kde předávat furt to samé. Navíc v každé šabloně řešit parametry presenteru Detail. Defaultní parametry jsem nastavil v Routeru. Chtěl bych se zeptat, jestli existuje lepší řešení než v každé šabloně vypisovat link na presenter a parametry + řešení parametrů a jejich validaci ve startup je správné?

Děkuji za Váš čas a hezký den.

Editoval emololftw (13. 11. 2020 8:26)

Kamil Valenta
Člen | 752
+
+1
-

Pokud jsem pochopil správně, tak hledáš persistentní parametry.

emololftw
Člen | 79
+
0
-

kamil_v napsal(a):

Pokud jsem pochopil správně, tak hledáš persistentní parametry.

Děkuji za bleskovou odpověď. Toto jsem přesně zkoušel, ale na podruhé už to vyšlo.
Ještě jednou děkuji za Váš čas.

Editoval emololftw (13. 11. 2020 8:36)