Jak sladit parametry query string s routováním

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
mildabre
Člen | 62
+
0
-

Prosím o odbornou radu pokročilejší znalce Nette.

V PHP jsem byl zvyklý pracovat s parametry pro řízení aplikace (např. nastavení filtru řazení výpisu, volba výstupní šablony výpisu, stránkování apod) pomocí parametrů ve tvaru:

/nejaka-adresa?id=value1&order=value2&filter=value3

Když mám routy nastavené podle základního tutoriálu Quickstart:

<?php

$container->router[] = new Route('index.php', 'Homepage:default', Route::ONE_WAY);
$container->router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');

?>

tak mohu pracovat s id jako primárním klíčem aktuální tabulky.

Jak ale dostanu do url další parametry – chtěl bych je mít v query stringu (za otazníkem). Je potřeba pro toto nějak nastavovat routu a jak se to zapisuje do makra latte n:href ? Je toto vůbec možné ?

Díky předem za jakoukoliv kvalifikovanou radu jak na to. Hledám už několik hodin na fóru i v dokumentaci a nemohu najít tu správnou inspiraci.

vvoody
Člen | 910
+
0
-

https://doc.nette.org/…n/presenters#… ostatné parametre tam vložíš úplne tak isto, ale samozrejme že už to musí byť vždy key value dvojica. Router tam parametre doplní automaticky za otáznik ak sa v maske nenachádzajú.

mildabre
Člen | 62
+
0
-

Díky za radu !

Máš plnou pravdu, Nette Framework je chytrý a pracovitý a parametry, které nejsou v masce Routeru umístí automaticky za otazník, což je přesně to co potřebuji. V tutoriálu tohle není jasně popsáno. Zkusil jsem dokonce jeden parametr který není v masce deklarovat jako persistentní:

<?php

abstract class BasePresenter extends Nette\Application\UI\Presenter
{
    /**  @persistent */
    public $klient_id;

}

?>

a super – ve všech odkazech v šablonách generovaných presentery poděděnými z BasePresenter-u Nette Framework automaticky přidá za otazník ten persistentní parametr ?klient_id = XXX. Tím nám tento framework ušetří spoustu práce s úmorným datlováním parametrů v odkazech.