nefungující widget (name ‚box‘ does not exist)
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- onny
- Člen | 67
Dobrý den,
mám vytvořený widget pomocí createComponentBox která je v basepresenteru,
a po zavolání v šabloně dojde k
InvalidArgumentException
Component with name ‚box‘ does not exist.
Pokud jsem dobře pročítal forum, je to tím, že v componentě (widgetu) mám jen string, tj. return „text k vypsání..“;
Jak to udělat správně?
Děkuji
Editoval onny (4. 10. 2010 8:32)
- h4kuna
- Backer | 740
onny napsal(a):
Pokud jsem dobře pročítal forum, je to tím, že v componentě (widgetu) mám jen string, tj. return „text k vypsání..“;
Ahoj to je špatně musíš vracet instanci třídy Control a napsat si metodu render().
přiklad:
<?php
class myControl extends Control
{
public function render()
{
return 'Hello world';
}
}
//v presenteru
public function createComponentBox()
{
return new myControl;
}
//v šabloně
{control box}
?>
Editoval matata (4. 10. 2010 8:50)
- Patrik Votoček
- Člen | 2221
popřípadě ji attachnout rovnou v presenteru:
//v presenteru
public function createComponentBox($name)
{
new myControl($this, $name);
}