Component or subcomponent name must not be empty string
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Honza Bedrna
- Člen | 8
Zdravím, začínám s Nette a nejde mi vytvářet žádný link v Komponentách. V presenteru si normálně vytvořím komponentu:
Presenter:
protected function createComponentFoo(){
retrun new FooComponent();
}
Componenta:
Class FooComponent extends \Nette\Application\UI\Control {
public function render(){
$this->template->setFile(__DIR__.'/foo.latte');
$this->template>render();
}
}
Sablona komponenty:
<a n:href=":Homepage:default">home</a>
Sablona view:
{control fooControl}
Vyjimka: Component or subcomponent name must not be empty string.
Co je špatně? Díky moc za rady!
- Vojtěch Dobeš
- Gold Partner | 1316
Makro n:href
je zkratka pro $control->link()
(makro {link ...}
). A v komponentách se lze pomocí
link()
odkazovat jen na signály této komponenty. Pro
mezipresenterové odkazování je třeba volat
$presenter->link()
, pro což slouží makro
{plink ...}
. Bohužel neexistuje atributová forma.
Tedy:
<a href="{plink :Homepage:default}">home</a>