Spojení presenteru s modelem

- Rogue
 - Člen | 3
 
Ahoj,
chtěl bych se zeptat jak spojit model s presenterem.
Mám model
class PageModel extends BasePresenter{
	public function getAllCategory() {
    	return $this->db->query('SELECT * FROM [category] ORDER BY [id] ASC')->fetchAll();
    }
}
Mám presenter
class CategoryPresenter extends BasePresenter{
	public function renderShow($url){
		$this->template->url = $url;
	}
}
A chtěl bych z CategoryPresenter spojit s PageModel tak abych mohl použít do šablony getAllCategory().
Zkoušel jsem to takto
class CategoryPresenter extends BasePresenter{
	public function renderShow($url){
		$model = new PageModel;
		$this->template->data = $model->getAllCategory();
		$this->template->url = $url;
	}
}
Ale bohužel pokaždé to vyhodí chybu, že PageModel neexistuje. Co dělám špatně. Nette 2.0.3.
Děkuji za každou radu
Editoval Rogue (4. 5. 2012 2:02)

- Vojtěch Dobeš
 - Gold Partner | 1316
 
- Proč tvůj 
PageModelextendujeBasePresenter? To je nesmysl. - Pokud to vyhodí chybu, že 
PageModelneexistuje, je to tím, že nenašel tu třídu. Není třeba v nějakém namespace? Nebo naopak není v namespace tenCategoryPresenter? - Nejlepší řešení je zaregistrovat si takový 
PageModeljako službu. Tedy vconfig.neonzapsat: 
services:
	pageModel:
		class: PageModel # nebo pokud je v namespace, tak samozřejmě celý název včetně namespace
A v presenteru už pak jen:
$this->template->data = $this->context->pageModel->getAllCategory();
				
- castamir
 - Člen | 629
 
Jak moc zastaralé jsou následující zápisy?
services:
	pageModel: PageModel
a v presenteru:
$this->template->data = $this->getService("pageModel")->getAllCategory();
jinak předpokládám, že máš následující strukturu:
/app
	/presenters
		/CategoryPresenter.php
/model
	/PageModel.php
Pokud ano, tak postupuj podle vojtova nebo mého postupu a v PageModel přepiš extends BasePresenter na extends Object a mělo by to jet…
Editoval castamir (4. 5. 2012 6:04)

- Rogue
 - Člen | 3
 
Děkuji Vám za odpovědi pomohlo mi to. :)
vojtech.dobes : Problém byl v přesně v tom že jsem v modelu napsal místo extends BaseModel, extends BasePresenter.
Nyní to funguje již takto
class CategoryPresenter extends BasePresenter{
        public function renderShow($url){
                $model = new PageModel;
                $this->template->data = $model->getAllCategory();
                $this->template->url = $url;
        }
}
Ještě jednou díky a přeji hezký víkend :)
Rogue