Vytvorenie vlastneho modelu

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

Chcem sa spýtať vážne začiatočnícku otázku –

Kedy je potrebné vytvárať vlastný model. Napríklad keď by som chcel v administrácii editovať stránky potreboval by som si vytvoriť vlastný model takto ?

	private $page = NULL;

	public function getModel() {
		if (!isset($this->page)) {
			$this->page = new Page();
		}
		return $this->page;
	}

A do modelu Page by som písal potom db príkazy.
Alebo netreba vytvoriť vlastný model a všetky db dotazy môžem napísať rovno do BaseModelu ktorý nemá construct ?

Editoval ricco24 (10. 6. 2011 8:48)

Filip Procházka
Moderator | 4668
+
0
-

Co jsi napsal, je asi nejlepší postup pro začátečníky. Kód co jsi uvedl, vložit do příslušného Presenteru. A co nejvíce SQL dotazů a logiky cpát do modelu.

Ještě bych doporučil doplnit annotaci a „správně pojmenovat“

/** @var Pages */
private $pages; // nastavovat na null neni potřeba


/**
 * @return Pages
 */
public function getPages()
{
        if ($this->pages === NULL) {
                $this->pages = new Pages();
        }

        return $this->pages;
}

Takto ti bude IDE i našeptávat metody :)

ricco24
Člen | 141
+
0
-

OK dakujem

ricco24
Člen | 141
+
0
-

Este si to ale chcem ujasniť.

Ak si vytvorim model napr. Stranky – aky je rozdiel medzi tym ze do tohto modelu umiestnim funkciu _construct

public function __construct($arr = array()) {
	parent::__construct($arr);
}

a potom ho vytvorim v prezenteri pomocou

private $page = NULL;

public function getModel() {
        if (!isset($this->page)) {
                $this->page = new Page();
        }
        return $this->page;
}

A medzi tym ak vytvorim model „Stranky“ bez funkcie _construct a v prezenteri model nevytvorim?

Jediný rozdiel ktorý som ja zatial zanamenal je ten ze mám sql dotazy tykajuce sa jednotlivych classov „pod jednou strechou“.

V prvom prípade sa k sql dotazom dostanem pomocou

$this->model->xxx

a v druhom pomocou

Stranky::xxx

Chápem to správne alebo som úplne mimo ?

22
Člen | 1478
+
0
-

To by chtělo základy OOP minimálně…

Filip Procházka
Moderator | 4668
+
0
-

Rozhodně o tom přestaň uvažovat jako o „SQL příkazech“. Protože ty je tam sice napíšeš, ale když už tam jsou, tak je pro tebe model logický celek, který něco obsluhuje a né hromádka sql příkazů.