Доктрина: установить значения модели в виде массива - PullRequest
3 голосов
/ 16 сентября 2009

У меня есть массив значений, которыми я хочу обновить свою модель.

Doctrine_Access предоставляет функцию setArray, которая почти точно мне нужна, за исключением того, что она заботится о значениях, которые не имеют полей в модели. Я хочу, чтобы их игнорировали.

Небольшой пример. Допустим, у нас есть таблица User с полем username.

$user = new User();
$user->setArray(array('username'=>'xyz'))->save();

Это бы сработало!

$user = new User();
$user->setArray(array('username'=>'xyz','anotherKey'=>'anotherValue'))->save();

Это не так. Я хочу, чтобы Doctrine просто игнорировала anotherKey, если нет связанных полей. Предполагается, что я не хочу фильтровать массивы перед обновлением модели.

Какой самый простой и простой способ сделать это?

Ответы [ 2 ]

1 голос
/ 17 сентября 2009

Doctrine_Record :: fromArray () решает его. К сожалению, он не возвращает объект, поэтому он бесполезен для цепочки методов ...

0 голосов
/ 24 декабря 2010

это полезно

добавить метод поиска в модель:

class Address extends Doctrine_Record {

    public static function factory() {
        return new Address();
    }

public function findById($id) {
       $findObject = Doctrine::getTable('Address')->findOneByid($id);
       return $findObject;
     }
....

и используйте его

  $address = Address::factory()
        ->findById(13)->set('name', 'new data')->set('anotherfield','another data')->save();
...