Špatný překlad na URL

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

Mám takovouto routu:

$router[] = new Route('<lang>/<profiles profiles>/<user_id>-<user_str>/<action>/<id>/', array(
        'lang' => $defaultLang,
        'module' => 'Frontend',
	'presenter' => 'Profiles',
	'action' => 'default',
	'id' => NULL
));

URL následně tvořím jako:

{plink Profiles: 'user_id'=>$user['id'], 'user_str'=>String::webalize($user['nick'])}

Výsledná URL je ovšem

/en/profiles/?user_id=1&user_str=uzivatel

Správně by měla být

/en/profiles/1-uzivatel/

Navíc, když zadám ručně přímo tuto URL (tu správnou) tak mi ji odchytí ta správná routa a v še vypadá v pořádku. (Nette 0.9.3 stable)

Editoval Hanz (26. 2. 2010 14:17)

Honza Kuchař
Člen | 1662
+
0
-

Máš evidentně ještě nějakou routu před tou, co jsi sem poslal.

Hanz
Člen | 16
+
0
-

Před tím mám ještě tyhle 2:

$router[] = new Route('index.php', array(
    'lang' => $defaultLang,
    'module' => 'Frontend',
    'presenter' => 'Homepage',
    'action' => 'default',
), Route::ONE_WAY);

$router[] = new Route('admin/<lang>/<presenter>/<action>/<id>/', array(
        'lang' => $defaultLang,
	'module' => 'Admin',
	'presenter' => 'Homepage',
	'action' => 'default',
	'id' => NULL,
));
Ola
Člen | 385
+
0
-

Matchne Ti to až nějaká routa za tím, protože v routě máš povinný parametr profiles, který ale při odkazování nepředáváš. Řešení: přejmenuj v routě <profiles profiles> na <presenter profiles>