Tutoriál – Cannot read an undeclared property

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

Zdravím,

mám novou verzi Nette (2.0) a pracuji na localhostu. Snažím se vytvořit si první aplikaci a narazil jsem na problém – pokud je to stupidní dotaz, tak se omlouvám, ale učím se.

Výpis z laděnky:

Cannot read an undeclared property HomepagePresenter::$model.

 3:    /**
 4:     * Base class for all application presenters.
 5:     *
 6:     * @author     John Doe
 7:     * @package    MyApplication
 8:     */
 9:    class BasePresenter extends Nette\Application\UI\Presenter
10:    {
11:      public function beforeRender()
12:      {
13:        $this->template->taskLists = $this->model->getTaskLists()->order('title ASC');
14:      }
15:    }

Chyba by měla být v řádku 13. Snažil jsem se najít chybu, ale už nevím jak dále. Ví někdo, čím to je? Děkuji moc za případné rady.

Editoval aciro (6. 3. 2012 15:19)

ViPEr*CZ*
Člen | 817
+
0
-

Není nic deklarovaného v proměnný model… to je vidět na první pohled. Nejspíš není nic v model. Naplňte si ji příslušnou instancí třídy pro model a tradááá.

Etch
Člen | 403
+
0
-

No tak ta chyba je celkem dost výmluvná. Přistupuješ k nedefinované proměnné „model“.

class BasePresenter extends Nette\Application\UI\Presenter{

	private $model;

	public function startup(){
		parent::startup()
		$this->model = new \JmenoModelu();
	}

	public function beforeRender(){
		$this->template->taskLists = $this->model->getTaskLists()->order('title ASC');
	}
}

Popřípadě pokud máš model nastaven v configu, tak si ho vytáhnout z contextu.

EDIT: Sakra koukám, že mi to psaní trvá nějak dlouho. Vždy než tu odpověď sesmolím tak mě někdo předběhne. :D

Editoval Etch (6. 3. 2012 15:48)