Chyba počtu parametrů v makru plink?

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

Mám routu

$admin		= new RouteList('Admin');
$admin[]	= new Route('admin/hotel/<seo>/<action>/<id>/<mode>', array(
	'presenter' => 'Hotel',
	'seo' => 'none',
	'action' => 'lokace',
	'id' => 0,
	'mode' => 'text',
));
$admin[]	= new Route('admin/<presenter>/<action>[/<id>]', 'Homepage:default');
$router[]	= $admin;

Když vytvářím odkaz takto:

<a href="{plink $presenter->action, $presenter->SEO, $presenter->ID, $presenter->Mode}">Image</a>

Dostanu:
… admin/hotel/hote-doma/ubytovani/9/

Když ale takto (přehodim posledni parametry):

<a href="{plink $presenter->action, $presenter->SEO, $presenter->Mode, $presenter->ID}">Image</a>

Dostanu:
… admin/hotel/hote-doma/ubytovani/text/9

Kde jsem udělal soudruzi chybu nebo je pocet paramatru omezen nebo je chyba v nette nebo … ?

(Všechny hodnoty jsou samozřejmě naplněné)

Editoval smi (21. 2. 2014 12:57)

Majkl578
Moderator | 1364
+
0
-

Nejsem si moc jistý, že parametry se přeloží podle pořadí v routeru, poněkud o tom pochybuji. Při používání více parametrů je vhodné je pojmenovávat (klíčové jsou názvy proměnných v presenteru/komponentě).

David Matějka
Moderator | 6445
+
0
-

Jak pise Majkl, na poradi parametru v routeru nezalezi. Parametry se umeji samy pojmenovat, pokud je mas v action* / render* metode v presenteru, takze nasledujici kod by se prelozil spravne

class FooPresenter extends BasePresenter
{

	public function actionDefault($lorem, $ipsum)
	{

	}
}
<a n:href="Foo:default $value1, $value2">

tak se $value1 priradi parametru lorem a $value2 parametru ipsum

v tvem pripade take popremyslej o tom, zda by nebylo vhodne pouzit persistentni parametry

Editoval matej21 (21. 2. 2014 13:25)

smi
Člen | 75
+
0
-

matej21 napsal(a):

Jak pise Majkl, na poradi parametru v routeru nezalezi. Parametry se umeji samy pojmenovat, pokud je mas v action* / render* metode v presenteru, takze nasledujici kod by se prelozil spravne

class FooPresenter extends BasePresenter
{

	public function actionDefault($lorem, $ipsum)
	{

	}
}
<a n:href="Foo:default $value1, $value2">

tak se $value1 priradi parametru lorem a $value2 parametru ipsum

v tvem pripade take popremyslej o tom, zda by nebylo vhodne pouzit persistentni parametry

Nepomohlo ani pojmenovaní ani „helper“ expand pole argumentu. Prostě je otočím a bude.
Jen stále nevím, kde udělali soudruzi z NDR chybu :o)

Persistentní parametry se mi tady asi nehodí, ale díky za typ.

smi
Člen | 75
+
0
-

Všem se omlovám, macro plink FUNGUJE JAK MÁ !!!.

Měl jsem chybu jinde a tlouklo se mi to s default hodnotou, takže jsem na to nepřišel (už dělám na webu 14 dní a jsem trošku unavený)