Jak udělat, aby prezenter měl dva modely? Nette 2/ PHP 5.3

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

Ahoj,
správně to má být tak, že každá tabulka má svůj model. Tudíž pokud chci, aby prezenter pracoval s 2 tabulkami, tak potřebuji používat 2 modely. Jenže většinou to je udělané pouze na jeden model. Jak to JEDNODUŠE udělat?

Děkuji.

S pozdravem,
Kathy

Mikulas Dite
Člen | 756
+
0
-

Rozhodně neplatí, že co presenter to jeden model a už vůbec není pravda, že model pracuje s jednou tabulkou.

Tohle se nedá moc dobře popsat, ale například v examples na githubu se dá vyčíst, jak se s modely pracuje.

Jednoduše je to prostě

public function renderDefault()
{
	$this->template->foo = $model1->bar(); // prace s prvnim modelem
	$this->temlpate->baz = $model2->quz(); // prace s druhym modelem
}
Ot@s
Backer | 476
+
0
-

Obecně to řeším tak, že do konkrétního modelu „nahrnu“ vše, co spolu nějak logicky souvisí (např. katalog zboží, resp. metody které potřebuji pro přístup k datům – obvykle se pracuje s více tabulkami). Pokud by toho mělo být v jednom modelu moc (což u větších projektů bývá), tak to ještě někdy rozdělím podle modulů (většinou taky něco tématicky seskupují/obsluhují).