No route for AdminPages: (page=sluzby-2)

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Wailey
Člen | 48
+
0
-

Ahoj všem řeším malou magii v routování

v routeru mám magie je konkrétně v posledním routování pro <page>/<category> v některých místech aplikace to funguje, avšak někdy při redirect nebo při vytváření odkazu v Admin presenterech dochází k chybě
No route for AdminPages: (…)

příklad redirect

	$this->presenter->redirect("AdminPages: ", array('page' => $this->page, 'category' => $this->category));

Router.php

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

		$router = new RouteList();
                $router[] = new Route('[/<action>]', 'FrontAbout:default');
                $router[] = new Route('index.php[/<action>]', 'FrontAbout:default', Route::ONE_WAY);

                ////////////////////////////////////////////////////////////////////////////////////////////
                // ROBOTS

                $router[] = new Route('sitemap.xml', "Robots:sitemap");
                ////////////////////////////////////////////////////////////////////////////////////////////
                // SYSTEM

                $router[] = new Route('api', "System:api");
                $router[] = new Route('signin', "System:signin");
                $router[] = new Route('out', "System:out");
                $router[] = new Route('files/<file>', "FilesSystem:default");

                ////////////////////////////////////////////////////////////////
                // ADMIN

                $router[] = new Route('admin', "AdminAbout:default");

                $router[] = new Route('admin/nastaveni[/<category>]', "AdminSetting:default");
                $router[] = new Route('admin/files[/[!<directory .+>]]', array(
                    'presenter'     => 'AdminFiles',
                    'action'        => 'default',
                    'directory'     => array(
                        Route::VALUE        => NULL,
                        Route::FILTER_IN    => NULL,
                        Route::FILTER_OUT   => NULL,
                    )
                ));

                $router[] = new Route('admin/files', "AdminFiles:default");
                $router[] = new Route('admin[/<page>][/<category>]', "AdminPages:default");

                ////////////////////////////////////////////////////////////////////////////////////////////
                // WEBPAGE

                $router[] = new Route('kontakt', "FrontContact:default");

//Místo kde to zlobí
                $router[] = new Route('<page>/<category>', array(
                    'presenter'     => 'FrontPages',
                    'action'        => 'default'
                ));
		return $router;
	}
}

Prosím o pomoc, jak vyřešit tento problém a kde by mohla být chyba. Moc děkuji

cendak
Člen | 21
+
+1
-

napadá mne zkusit tu routu napsat takto:

$router[] = new Route('admin[/<page>[/<category>]]', "AdminPages:default");
Unlink
Člen | 298
+
+1
-

Ono ta routa nemá zmysel aby mala tie parametre ako volitelné keďže url /admin matchne už tá nad tým

new Route('admin', "AdminAbout:default");

možno to je hlúposť, ale skús odstrániť tu medzeru čo máš za AdminPages: v tom redirecte

Wailey
Člen | 48
+
0
-

Perfektní, moc děkuji už funguje vše :)

Unlink
Člen | 298
+
0
-

Wailey napsal(a):

Perfektní, moc děkuji už funguje vše :)

A problém bol v tých parametroch alebo v tej medzere? Lebo ak to bolo tou medzerou, tak by sa to imho mohlo fixnut :)