přidání sloupce do objektu

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

Ahoj,

mám teoretický dotaz

mám například repository product který mi vrací $this->productRepository->getProduct($id) objekt a vypíši si $product->id $product->name atd…

Potřebovyl bych, aby ještě před tím než se objekt odešle tak se do něj vložil další sloupec s určitou hodnotou a já ho pak mohl zavolat.

$product->foo

jde o to, že potřebuji získat nějaká data, která nejsou v tabulce product, ale dále s tím pracovat jako kdyby k produktu ptařila

děkuji

vitkutny
Člen | 73
+
0
-

active row je read-only, můžeš využít fci toArray() přidat hodnotu, případně poté převést zpět na object, aspoň takhle to řeším já, možná nebude nejlepší řešení, tak budu rád když někdo napíše jak to udělat lépe

saimons
Člen | 293
+
0
-

Slo by to udelat nejak takto, priklad s pridanim platu ktery se vypcte na zaklade hodnot z DB. Pak se vola na select trida MyDBSelection.

<?php
use Nette\Database\Table;


class MyDBSelection extends Table\Selection {
    protected function createRow(array $row) {
        $money = new MoneyModel;
        $row['plat'] = $money->getPlat((object) $row, $row['id']);
        return parent::createRow($row);
    }

}
?>

Editoval saimons (19. 8. 2013 18:57)