routa pro modul admin v routeFactory

admin@easyweb4u.cz
Backer | 143
+
0
-

Stáhnul jsem nette 2.4, kde je ve složce router soubor RouterFactory.php. Vytvořil jsem si v app modul admin a vytvořil routu pro logovací stránku

<?php
class RouterFactory
{
	use Nette\StaticClass;

	/**
	 * @return Nette\Application\IRouter
	 */
	public static function createRouter()
	{

                $router[] = $adminRouter = new RouteList('Admin');

                $adminRouter[] = new Route('admin/<presenter>/<action>', 'Sign:in');

				return $router;
	}
}
?>

hází to následující chybu

Return value of Container_0313f473b9::createServiceRouting__router() must implement interface Nette\Application\IRouter, array returned

Pokud si router vytvořím v souboru bootstrap.php, tak mi to funguje. Kde by mohl být problém?

Editoval admin@easyweb4u.cz (26. 6. 2018 9:57)

Ondřej Kubíček
Člen | 494
+
+1
-

protože $router máš ted jako pole, musíš vracet RouteList

takže na začátek

$router = new RouteList();

Editoval Ondřej Kubíček (26. 6. 2018 10:12)

admin@easyweb4u.cz
Backer | 143
+
0
-

Ale jak pak odliším routy pro moduly Admin a Front?

Felix
Nette Core | 1189
+
+1
-

admin@easyweb4u.cz napsal(a):

Ale jak pak odliším routy pro moduly Admin a Front?

Tak jak to delas. Mel jsi to skoro dobre. :-)

$router = new RouteList();

$router[] = $admin = new RouteList('Admin');
$admin[] = new Route('admin/<presenter>/<action>', 'Sign:in');

$router[] = $front = new RouteList('Front');
$front[] = new Route('<presenter>/<action>', 'Home');

return $router;
admin@easyweb4u.cz
Backer | 143
+
0
-

Díky, funguje to. Vlastně jsem tam nepozorností vrazil [] a udělal z objektu pole…