Vlastní jméno presenteru v URL

DrakMC
Člen | 35
+
0
-

Ahoj, na webu připravuji sekci „O nás”. Vytvořil jsem tedy presenter ONasPresenter.php a k tomu jsem vytvořil složku „ONas” v templates. Je možné mít v URL „domena.cz/o-nas” a přitom mít jméno presenteru a složky v template pojmenovanou jinak – například anglicky?

neznamy_uzivatel
Člen | 115
+
+3
-

RouterFactory.php:
$router->addRoute('o-nas', 'JinyPresenter:default');

https://doc.nette.org/…tion/routing

Editoval neznamy_uzivatel (25. 12. 2021 9:18)

DrakMC
Člen | 35
+
0
-

Díky! Vyzkoušel jsem to, ale nefunguje to. Pokud otevřu webovou stránku: domena.cz/test, tak mi to vypíše: Cannot load presenter 'Test', class 'App\Presenters\TestPresenter' was not found.

Do RouterFactory.php jsem pouze přidal $router->addRoute('test', 'Homepage:default');. Je potřeba dělat něco dalšího?

Milo
Nette Core | 1283
+
+3
-

Dals to jako první první routu?

DrakMC
Člen | 35
+
0
-

Takto vypadá můj 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>[/<id>]', 'Homepage:default');
		$router->addRoute('test', 'Homepage:default');
        $router->addRoute('o-nas', 'AboutUs:default');
		return $router;
	}
}

Při otevření domena.cz/test/ se zobrazí: https://i.imgur.com/EyQuh3U.png
Při otevření domena.cz/o-nas/ se zobrazí: https://i.imgur.com/tu7KEOs.png

Editoval DrakMC (26. 12. 2021 22:57)

David Matějka
Moderator | 6445
+
+2
-

J, takže to není jako první routa, viz doc

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é.

DrakMC
Člen | 35
+
0
-

Dal jsem je na první místo a vyřešeno, díky. :)