Doctrine – Form->setValues()?
- exquis
- Člen | 83
Ahoj,
začínám s Doctrine a nedaří se mi jednoduché načtení hodnot do formuláře dle klasického setValues()
$form->setValues($this->EM->getRepository(Langs::class)->findOneById($this->detailId));
Když bych nastavil viditelnost atributů entity na public, tak to lze přetypovat na array a funguje, ale to nebude ta nejlepší cesta :) Nápad jak to jednoduše načíst?
- leninzprahy
- Člen | 150
Asi nejjednodušší, ale rozhodně ne nejčistější cesta je, si v té entitě udělat metodu, něco jako
public function getFormDefaults() {
return [
'neco' => $this->neco,
....
];
}
a pak to plnit
$form->setValues($this->EM->getRepository(Langs::class)->findOneById($this->detailId)->getFormDefaults());
- exquis
- Člen | 83
Dobrý nápad, mě se právě nechtělo dělat každé entitě něco jako [„foo“ =>„bar“], ale chtěl jsem, aby to vzalo všechny atributy tridy a hodilo je to do assoc. pole a na to jsem objevil super funkci.. takze stacilo si udelat BaseEntity, ktera ma v sobe funkci getValues() a ostatni jsou potomci
function getValues()
{
return get_object_vars($this);
}
- leninzprahy
- Člen | 150
Jako jde to, třeba na prototypování se může hodit, ale čisté to není
:)
A to máš všechny formuláře a entity 1:1, jako že všechny vlastnosti
entit, mají své políčko ve formuláři?
Ještě bych se koukl po nějaké knihovně, třeba
https://github.com/…rms-doctrine
https://github.com/…octrineForms