Frage

Ich habe ein Array von Werten habe ich mit meinem Modell aktualisiert werden soll.

Doctrine_Access bietet eine Funktion setArray, die fast genau das, was ich brauche - außer es Werte kümmert sich um die Felder im Modell nicht haben. Ich möchte diejenigen ignoriert werden.

Ein kleines Beispiel. Sagen wir eine User-Tabelle mit dem Feld Benutzernamen haben.

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

Das würde die Arbeit!

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

Das nicht. Ich will Lehre nur anotherKey ignorieren, wenn es keine verwandten Bereich ist. Die Absicht ist, dass ich will nicht meine Arrays filtern, bevor ich mein Modell aktualisieren.

Was ist die sauberste und einfachste Weg, dies zu tun bekommen?

War es hilfreich?

Lösung

Doctrine_Record :: fromArray () löst es. Leider ist es nicht das Objekt zurück, so ist es nutzlos für die Methode Verkettungs ...

Andere Tipps

Dies ist nützlich,

hinzufügen find-Methode zu Modell:

class Address extends Doctrine_Record {

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

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

und es verwenden,

  $address = Address::factory()
        ->findById(13)->set('name', 'new data')->set('anotherfield','another data')->save();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top