Component '' is not attached to ‚Nette\Application\UI\Presenter‘
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Berny
- Člen | 15
Zdravím.
Mám tu chybu, se kterou si nevím rady a je pro mě dosti důležitá, abych
využil komponenty na plno.
Komponenta
<?php
class Sitemap extends Nette\Application\UI\Control{
public function generateSitemap(){
return $this->getBody();
}
protected function getBody(){
$query = $this->presenter->database->table(DB_NEWS); // Vyskočí error u toho řádků
// Zpracování sql dotazu + různé atributy pro sitemap (Není důležité)
$this->link("News:read", array(
"id" => $query->news_id,
"name"=> $query->news_subject
)); // U této funkce vyskočí error
// return ...
}
}
Presenter
<?php
namespace AdminModule;
use Nette\Application\UI\Form,
Sitemap;
class SitemapPresenter extends Admin{
protected function createComponenetCreateSitemap(){
// Formulář pro sitemap
}
public function processCreateSitemap(Form $form){
$sitemapGenerator = new Sitemap;
$sitemap = $sitemapGenerator->generateSitemap();
}
}
Hlásí mi to, že není bezejmenná komponenta připojena k presenteru.
- frosty22
- Člen | 373
Přesně tak, jak píše Honza .. něco jako:
<?php
namespace AdminModule;
use Nette\Application\UI\Form,
Sitemap;
class SitemapPresenter extends Admin{
protected function createComponentSitemap(){
return new Sitemap();
}
protected function createComponentCreateSitemap(){
// Formulář pro sitemap
}
public function processCreateSitemap(Form $form){
$sitemap = $this['sitemap']->generateSitemap();
}
}
?>