Odlišný název URL než Presenter

Mirspa
Člen | 10
+
0
-

Vytvořil jsem si LinuxPresenter.php a složku s názvem Linux. Potřeboval bych poradit jak v routeru správně napsat příkaz aby se v adresním řádku internetového prohlížeče místo linux, zobrazovalo např. vse-pro-linux.

Vím že to mám napsat někam do routeru RouterFactory.php.

Zkoušel jsem přidat následující příkaz a nefunguje to.:

$router->addRoute('vse-pro-linux', 'linux');

Kompletní náhled *RouterFactory.php

<?php

declare(strict_types=1);

namespace App\Router;

use Nette;
use Nette\Application\Routers\RouteList;


final class RouterFactory
{
	use Nette\StaticClass;

	public static function createRouter(): RouteList
	{
		$router = new RouteList;
		$router->addRoute('<presenter>/<action>', 'Index:default');
        $router->addRoute('vse-pro-linux', 'Linux');
		return $router;
	}

}

Editoval Mirspa (10. 12. 2020 17:39)

David Matějka
Moderator | 6445
+
+3
-

cituji z dokumentace:

Je důležité, v jakém pořadí jsou routy definovány, protože se zkouší postupně odshora dolů. Platí pravidlo, že routy deklarujeme od specifických po obecné.

Mirspa
Člen | 10
+
0
-

Děkuji za upozornění. Užmi to funguje.

Přikládám výsledný zdroj.

<?php

declare(strict_types=1);

namespace App\Router;

use Nette;
use Nette\Application\Routers\RouteList;


final class RouterFactory
{
	use Nette\StaticClass;

	public static function createRouter(): RouteList
	{
		$router = new RouteList;
		$router->addRoute('vse-pro-linux', 'Linux:default');
		$router->addRoute('<presenter>/<action>', 'Index:default');
		return $router;
	}

}