Odlišný název URL než Presenter
- Mirspa
- Člen | 10
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
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
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;
}
}