Jak nastavit parametry v routě
- ForestCZE
- Člen | 209
Ahoj, potřeboval bych upravit routu tak, aby byla např.:
http://domena.cz/1/2
S tím, že mám Presenter Categories jako výchozí.
Routa vypadá takto:
public static function createRouter()
{
$frontModule = new RouteList('Front');
$frontModule[] = new Route('<presenter>/<action>[/<cislo1>][/<cislo2>]', 'Categories:default');
$router = new RouteList;
$router[] = $frontModule;
return $router;
}
Když pak zadám do prohlížeče:
http://domena.cz/1/2
tak mi to vyhodí: No route for HTTP request
Co mi ještě chybí? V dokumentaci jsem víc nenašel. Díky předem za pomoc :)
EDIT: Tak ta adresa musí být:
http://domena.cz/categories/default/1/2
Mohu se nějak zbavit toho defaultu?
Editoval ForestCZE (4. 7. 2018 19:29)
- Ondřej Kubíček
- Člen | 494
protože ty v té routě máš definovaný ještě presenter a action, a
navíc ty čísla máš nepovinná, tudíž to očekává
adresu http://domena.cz/presenter/action/1/2
musel bys to upravit takhle nějak, s tím že můžeš vynutit jen čísla:
new Route('<cislo1 [0-9]>/<cislo2 [0-9]>', 'Categories:default')
- ForestCZE
- Člen | 209
Nezměnil jsem zadání. Pouze jsem doplnil, že to neznalo cestu, protože v odkazu chybělo action, tedy default.
Takže mám odkaz:
<a n:href="Categories:default cislo1=>1, cislo2=>2">Odkaz</a>
A hodí mě to na:
http://mojedomena.cz/categories/default/1/2
Ale jde o to, že bych z toho rád dal pryč default, aby to bralo jako výchozí action toho presenteru.
Tak to vypadá, že to funguje, když udělám:
$frontModule[] = new Route('categories[/<cislo1>][/<cislo2>]', 'Categories:default');
Ještě to dám jako povinné, nastavím tomu pattern a asi ok. Díky moc za pomoc :)
Editoval ForestCZE (4. 7. 2018 20:01)
- ForestCZE
- Člen | 209
Ještě jsem narazil na jeden problém a sice ten, že když mám:
new Route('<cislo1 [0-9]>/<cislo2 [0-9]>', 'Categories:default')
Tak to chápu tak, že ta čísla mohou byt z čísel od 0 do 9 a kdybych
chtěl určit délku, tak bych měl přidat {5}
No, ale když dám:
categories/1/1
.
.
.
categories/9/9
tak je vše ok, ale jakmile dám:
categories/10/10
a vyšší číslo, tak mi to vyhazuje: No route for HTTP
request., to vážně nechápu.
- ForestCZE
- Člen | 209
skromny napsal(a):
nieje to ten to isty „problem“ ? https://forum.nette.org/…k-jej-pouzit#…
Díky :)