tvorba odkazů – Component doesn't exist

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

Ahoj,

s Nette začínám a trošku mimo mě jde tvorba odkazů, myslel jsem že jsem ji pochopil ale asi ne :D.

Tvořím menu s odkazem na kategorie, vytvořil jsem si komponentu a tu jsem naplnil z databáze. Ale tvorba odkazů je nějaká podivná. Když odkaz vytvořím jako

<a n:href="Cat:default">{$a->CatName}</a>

tak dostanu hlášku Component with name ‚Cat‘ does not exist.

Když jsem zkoušel

<a href="{plink Cat:default}">{$a->CatName}</a>

tak vše fungovalo, akorát jakmile jsem přidal argument tak se z adresy stal #.

CatPresenter mam prozatim stejny jako HomePresenter.

Struktura projektu je taková

app
 +-- AdminModule - zatím netknutý
 +-- FrontModule
     +-- components
	Archive.{latte,php}
	Navigation.{latte,php}
     +-- models
	Archive.php
	Article.php
	Category.php
	Comment.php
	Table.php
     +-- presenters
	CatPresenter.php
	HomePresenter.php
     +-- templates
	+-- Cat
		default.latte
	+-- Home
		default.latte
	@layout.latte
 +-- libs
 +-- presenters
 .htaccess
 bootstrap.php
 config.neon
 web.config
log
temp
www

Díky za pomoc.

vvoody
Člen | 910
+
0
-

Uved priklad pridania argumentu. Trochu viac rozpis „z adresy sa stal #“ celkom to nechapem, ked sa pozeras do vygenerovaneho zdrojaku stranky tak tam je href=„#“?

olejnjak
Člen | 8
+
0
-

Tohle <a href="{plink Cat:default $a->CatUrl}">{$a->CatName}</a><br> mi vygeneruje tohle <a href="#">ČVUT FIT</a><br />

akorát mě překvapuje že podle návodu tady by v tom de facto neměl bejt rozdíl (mezi n:href a plink)

Editoval olejnjak (5. 9. 2012 23:27)

sppilka
Člen | 37
+
0
-

Nejsem si jistý, ale možná pomůže promazat cache..

Jan Endel
Člen | 1016
+
0
-

Pokud se chceš vyhnout vygenerování hashe a zjistit kde je chyba, dopočuju změnu chování při invalid linku.

Dále pak pozor:

  • V presenterech je ekvivalentní plink, link a n:href makro
  • V komponentách je ekvivaletní pouze link a n:href makro, pro odkazování ven z komponenty používat čistě jen plink

Editoval pilec (5. 9. 2012 23:51)

olejnjak
Člen | 8
+
0
-

Dobré už to mám, samozřejmě špatně CatPresenter který neměl metodu renderDefault :)