Generování odkazu selže, pokud hodnota parametru url v path obsahuje lomítko
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- tobice
- Člen | 30
Narazil jsem na dost překvapivý problém. I když to není zrovna asi typické, tak se mi může stát, že potřebuji předat skrz url hodnotu obsahující dopředné lomítko (musím pracovat s databází, kde položky jsou identifikované řetězci, které můžou obsahovat všelijaké šílenosti). Pokud je ta hodnota součástí query, tak je to v pořádku, ale pokud je přímo v path, tak se url nevygeneruje.
Routa je definovaná takto:
<?php
$router[] = new Route('<module>/<presenter>/<action>[/<id>]', 'Default:default');
?>
A akce třeba takto:
<?php
public function actionAction($id)
{
}
?>
A takto vytvářím odkaz:
<?php
$this->presenter->link("Module:Presenter:action", "a/b");
?>
V této konfiguraci generování odkazu selže klasicky „No route for…“. Chápu, že lomítko navíc je v URL už z principu problém (a tak trochu nesmysl), nicméně bych předpokládal, že se tam provede automaticky nějaké escapování hodnot. Je toto chování v pořádku?