Doutrina: Definir valores do modelo como matriz
Pergunta
Eu tenho uma matriz de valores que eu quero atualizar meu modelo com.
Doctrine_Access fornece uma setArray função que é quase exatamente o que eu preciso - a não ser que se preocupa com valores que não têm campos no modelo. Eu quero aqueles para ser ignorado.
Um pequeno exemplo. Dizer que temos uma tabela de usuário com o nome de usuário campo.
$user = new User();
$user->setArray(array('username'=>'xyz'))->save();
Isso funciona!
$user = new User();
$user->setArray(array('username'=>'xyz','anotherKey'=>'anotherValue'))->save();
Isso não faz. Quero Doutrina simplesmente ignorar anotherKey, se não houver um campo relacionado. A intenção é que eu não quero para filtrar minhas matrizes antes de eu atualizar o meu modelo.
O que é a forma mais limpa e mais fácil de conseguir este feito?
Solução
Doctrine_Record :: fromArray () resolve. Infelizmente ele não retorna o objeto, por isso é inútil para o método de encadeamento ...
Outras dicas
isto é útil
método add find para modelo:
class Address extends Doctrine_Record {
public static function factory() {
return new Address();
}
public function findById($id) {
$findObject = Doctrine::getTable('Address')->findOneByid($id);
return $findObject;
}
....
e usá-lo
$address = Address::factory()
->findById(13)->set('name', 'new data')->set('anotherfield','another data')->save();