Jak nastavit parametry v routě

ForestCZE
Člen | 209
+
0
-

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
+
+1
-

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')
Ondřej Kubíček
Člen | 494
+
+1
-

aha mezitím jsi změnil zadání, tak vyhod z routy <action>

ForestCZE
Člen | 209
+
0
-

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
+
0
-

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.

skromny
Člen | 5
+
+1
-

nieje to ten to isty „problem“ ? https://forum.nette.org/…k-jej-pouzit#…

ForestCZE
Člen | 209
+
0
-

skromny napsal(a):

nieje to ten to isty „problem“ ? https://forum.nette.org/…k-jej-pouzit#…

Díky :)