Multiplier – více parametrů/objekt do komponenty

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

Mám výpis komentářů a u každého chci vykreslit kolik má pozitivních a kolik negativních hlasů + samotné hlasování. Mám na to udělanou komponentu, a abych ji mohl vykreslit na stránce víckrát, tak používám Multiplier.

Jenže jak mohu přes Multiplier poslat té komponentě potřebná data, potřebuji tam poslat ty plsové a mínusové body a id. Ideální by bylo poslat tam přímo celou entitu.

Napadá mě jedině uložit si do třídní proměnné všechny ty entity a pak v tom multiplieru poslat tu konkrétní entitu. Ale to mi nepřijde příliš dobré řešení, protože pi větším počtu entit, to bude celkem trvat.

Je nějaké lepší řešení, či na to jít nějak úplně jinak?

vvoody
Člen | 910
+
0
-

Komponente predaj službu ktorá vráti entitu na základe toho id a predpokladám že potom z entity už nebude problém získať pluska a mínuska.

Jiří Nápravník
Člen | 710
+
0
-

Ano to, je samozřejmě možné, ale je to ještě horší než to co napadlo mě. Protože když budu mít těch komentářů stovku, tak se budu stokrát ptát databáze (případně cache).

David Matějka
Moderator | 6445
+
0
-

z sablony entitu predat nemuzes, to uz by bylo pozde.

mas tedy dve moznosti – bud to, co ti radil vvoody (btw, treba doctrina ma v uow identity map, takze se entita vytahne z pameti), nebo to, cos navrhoval ty (seznam entit v property presenteru a v factory multiplieru si ji vytahnout)

ja mam radeji predavani entit a ne jen id :)

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

Předat v továrničce konkrétní data, získaná spolu s ostatními někde na jednom místě v presenteru/obalující komponentě, my přijde jako zcela košer řešení, a nevidím principiální důvod, proč by to mělo být pomalé.

Předat složitější data přímo anonymní funkci třeba místo IDčka nejde z architektonického návrhu – onen „parametr“ není parametr, ale název komponenty.

Jiří Nápravník
Člen | 710
+
0
-

Ok, tak mi asi nic lepšího nezbude.

matej21: já mám taky raději předávání celé entity. Doctrine sice využívám, ale tady to nejsou čisté entity, musím tam mít Gedmo\Tree, takže je to v podstatě pole, či-li to budu muset dělat podobně jako jsem napsal výše.