logování změn databáze do tabulky žurnálu na úrovni modelu
- jik
- Člen | 149
Zdravím,
je nějaká cesta, jak z jednoho modelu volat model druhý? Mám aplikaci a
chci tam dodělat k některým operacím žurnál. Zatím jsem uvažoval, že
bych příslušné metody modelů dovybavil voláním modelu žurnálu,
zhruba takto:
class Rok extends Table {
protected $tableName = 'rok';
public function createRok ($o_rok, $editor) {
$return = $this->getTable()->insert(array( ... ));
$this->context->journal->insert(table'=>$tableName, 'report'=>json_encode($o_rok), 'user_id'=>$editor));
}
Takto to ale nejde a zatím mě nenapadlo, co s tím. Děkuji za každou radu.
- MartinitCZ
- Člen | 580
Ve správném návrhu by jedenModel neměl vědět o druhyModel. ;)
Zkus kouknout na Kdyby\Events
Možná je to to, co hledáš. ;)
- Pavel Macháň
- Člen | 282
jik napsal(a):
Zdravím,
je nějaká cesta, jak z jednoho modelu volat model druhý? Mám aplikaci a chci tam dodělat k některým operacím žurnál. Zatím jsem uvažoval, že bych příslušné metody modelů dovybavil voláním modelu žurnálu, zhruba takto:class Rok extends Table { protected $tableName = 'rok'; public function createRok ($o_rok, $editor) { $return = $this->getTable()->insert(array( ... )); $this->context->journal->insert(table'=>$tableName, 'report'=>json_encode($o_rok), 'user_id'=>$editor)); }
Takto to ale nejde a zatím mě nenapadlo, co s tím. Děkuji za každou radu.
Udělej si fasádu pro potřebnou akci a po akci modelu1 udelas i akci modelu2 a v presenteru zavolas proste metodu z té fasady
a nebo Kdyby\Events viz @MartinitCZ