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?

Foi útil?

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();
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top