Změna URL / pomoc s routováním (začátky)

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

Zdravím,
potřeboval bych pomoci s routováním URL.
Představa, jak by URL mělo vypadat ⇒ neco/kategorie/nazevkategorie
Současné URL vypadá nějak takto ⇒ neco/kategorie/detail/?idKat=1

Za každou radu budu rád, pročítal jsem dokumentaci, ale pořád to pořádně nechápu.

Děkuji.

Oli
Člen | 1215
+
0
-

Sice už to je skoro 2 roky stary, ale je to moc pěkná přednáška.

Checkpoint
Člen | 34
+
0
-

Oli napsal(a):

Sice už to je skoro 2 roky stary, ale je to moc pěkná přednáška.

Super, mrknu na to. Díky. :)

Checkpoint
Člen | 34
+
0
-

Oli napsal(a):

Sice už to je skoro 2 roky stary, ale je to moc pěkná přednáška.

Tak jsem se na tu přednášku podíval, ale můj problém stále přetrvává.

Zhruba takto vypadá můj RouterFactory.php

<?php
class RouterFactory
{

	/**
	 * @return Nette\Application\IRouter
	 */
	public function createRouter()
	{
		$router = new RouteList();
		// Admin
    $router[] = new Route('admin/<presenter>/<action>/<id>', array(
        'module' => 'Admin',
        'presenter' => 'Admin',
        'action' => 'default',
        'id' => NULL,
    ));

    // Front (Homepage)
    $router[] = new Route('[<presenter>/]<action>/<idAds>', array(
        'module' => 'Front',
        'presenter' => 'Homepage',
        'action' => 'default',
        'idAds' => NULL,
    ));

    // Front (Kategorie)
    $router[] = new Route('<presenter>[/<action>]/<idKat>', array(
        'module' => 'Front',
        'presenter' => 'Kategorie',
        'action' => 'default',
        'idKat' => NULL,
    ));

    return $router;
	}

}
?>

Problém je v tom, že buď funguje jedna routa, nebo druhá. Záleží na pořadí. Je možné, že jsem z té přednášky špatně pochopil. :)

Oli
Člen | 1215
+
0
-

Problém je ten, že takhle, když jsou v URL 2 hodnoty, tak ta routa neví jestli to je <action>/<idAds> nebo <presenter>/<idKat>. Oba mají 2 hodnoty a proto se vyhodnotí ta první. Pokud by jsi měl ten první presenter jako povinný a byl v defaultu + 2. parametr (<idKat>), tak by to mohlo funguvat. Protože pokud by jsi měl 3 parametry, tak to spadne pod tu první routu a pokud budou jen 2 tak pod tu druhou…

Checkpoint
Člen | 34
+
0
-

Oli napsal(a):

Problém je ten, že takhle, když jsou v URL 2 hodnoty, tak ta routa neví jestli to je <action>/<idAds> nebo <presenter>/<idKat>. Oba mají 2 hodnoty a proto se vyhodnotí ta první. Pokud by jsi měl ten první presenter jako povinný a byl v defaultu + 2. parametr (<idKat>), tak by to mohlo funguvat. Protože pokud by jsi měl 3 parametry, tak to spadne pod tu první routu a pokud budou jen 2 tak pod tu druhou…

Tak teď jsem to vůbec nepochopil. :D
Zkusím ještě párkrát prostudovat dokumentaci. Zdá se, že mám ještě dlouhou cestu před sebou, než tomu plně porozumím. :)