Foreach s Kdyby\GeneratedProxy
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Petr Parolek
- Člen | 455
Ahoj,
pro usnadnění ukládání dat mám repositáři
<?php
...
foreach ($data as $key=>$value) {
$key = ucfirst($key);
$entity->$key = $value;
}
...
?>
Problém ovšem nastává, když mám spojené entity. Do objektu mi neleze přímo entita, ale Doctrine tam dává sůj objekt:
data
protected => Kdyby\GeneratedProxy\__CG__\App\Model\Entities\Entity#e27a
__initializer__ => NULL
__cloner__ => NULL
__isInitialized__ => TRUE
/* klasická data */
....
Jak mám projít takovou strukturu prosím?
- mkoubik
- Člen | 728
- ten „svůj objekt“ je proxy té entity, takže všechno co funguje s tou entitou by s ní mělo fungovat taky
- tohle smrdí mass-assignmentem, pokud už potřebuješ do entity posílat
„všechny“ data najednou, tak si tam přidej metodu
public setData(array $data)
, ale radši si to nějak rozděl na věci co se nastavujou společně a udělej si na to value objecty - ujisti se že v té entitě nejde změnit něco co by rozhodně nemělo jít (https://www.google.cz/webhp?…)
- repository neslouží k ukládání dat