Narazil jsem na něco, co nevím jak správně pojmenoval, ale doufám, že se mi povede vysvětlit

Webster.K
Člen | 192
+
0
-

Zdravím všechny a předem se omlouvám za název vlákna, který rozhodně není vypovídající o tom, co potřebuji. O co jde. Z databaze přes $this->database->table(‚tabulka‘)->fetchAll(); samozrejmne s limitem, where a dalsima ziskavam data, přibližně 10ti řádků. Jde mi o to, že toto mám ve funkci v modelu, která toto všechno vrací a přes presenter se to do šablony dostává přes $this->template->radek = $this->funkceZModelu->volaniFunkceCoVraciData(); a v šabloně klasicky pres foreach $radek as $sloupec vykresluji. Nicméně v jednom z těch prvků, např. $sloupec->sloupecekTabulky potřebuju změnit hodnotu na základě výpočtu, vždy se to bude týkat jen konkrétního sloupečku, bohužel pro každého uživatele je hodnota jiná. Jak ji dopočítat? Rozbalit to hned v té první funkci foreachem a pak vracet dvoudimenzní pole? Nebo v šabloně nějak zavolat funkci co je definovana v modelu co to přeloží do formy co potřebuji? To by znělo nejvíc logicky, ale jak na to? Doufám že jsem to napsal alespoň trochu srozumitelně a předem děkuji :)

Ondřej Kubíček
Člen | 494
+
0
-

pokud se to nedá spočítat přímo na urovni db, tak bych si v modelu ty data projel, upravil jak potřebuju a vrátil svoje nové pole

Webster.K
Člen | 192
+
0
-

Bohužel, na úrovni DB se to spočítat nedá :/ právě se mi z toho „objektu“ nechtělo dělat pole a přepisovat celou šablonu. Proto jsem trochu tajně doufal, že nějak ze šablony půjde zavolat funkce, kterou mám napsanou :)

Ondřej Kubíček
Člen | 494
+
0
-

tak ono v šabloně samozřejmě zavolat svoji funkci můžeš, ale spíš bys ty data měl upravovat dřív a v šabloně jen vypsat

CZechBoY
Člen | 3608
+
0
-

Udělal bych si novej objekt, kterej bych vracel z fasády.

Ve zkratce

class Fasada
{
	public function dejMiData($idUzivatele, ...)
	{
		$radek = $this->funkceZModelu->->volaniFunkceCoVraciData();
		$spocitanaHodnota = $this->pocitadloHodnoty->spocitejHodnotu($idUzivatele, $radek);

		return new NovejObjekt($radek, $spocitanaHodnota);
	}
}