Modifikace ActiveRow v Nette 2.1

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

Ahoj,

Mám trochu problém s Nette 2.1, konkrétně: „proměnné řádku ActiveRow jsou nyní read-only, pro změnu slouží metoda $row->update(array(‚field‘ ⇒ ‚value‘)). Věřte, že dřívější chování mělo tolik úskalí, že jiná cesta nebyla.“

Pokud na activeRow zavolám update, pošle mi data do databáze, což nechci. Já si vytáhnu produkt z DB, je v něm sloupec cena (price). No a teď potřebuji spočítat proceVat a priceNoVat podle nějakého nastavení např.:

$product->priceNoVat = $product->price;
$product->priceVat = $product->price + $product->price * $dph / 100;

Nyní mi ActiveRow změnit nejde, lze to nějak obejít? Transformaci na pole použít nemohu, tahám pak další data přes related třeba.

Jan Tvrdík
Nette guru | 2595
+
0
-

Nyní mi ActiveRow změnit nejde, lze to nějak obejít?

Jo, použít nějaké ORM, které má entity. Viz např. https://forum.nette.org/…rm-challenge

Jan Suchánek
Člen | 404
+
0
-

Maxell92: Pokud nechceš používat nějaké pěkné ORM, nelze si připravit nějakou obálku, které předáš activeRow a až v ní si výsledky upravíš?

Editoval jenicek (11. 2. 2014 18:05)