3 Stimmen

Doktrin zum Laden von Autoinkrementwerten nach dem Speichern veranlassen

Ich verwende Doctrine für die Datenbankabstraktion. Jetzt würde ich gerne die auto_increment Primärschlüssel aus der frisch erstellten (und save() 'd) Objekt - aber $obj->toArray() zeigt mir, dass das Feld leer ist, nachdem ich save() .

Gibt es eine Flagge, die ich nicht kenne, die dies bewirkt? Oder muss ich das Objekt wirklich in der Datenbank abfragen?

3voto

Wickethewok Punkte 6344

Vergewissern Sie sich, dass Sie das Autoinkrement-Flag gesetzt haben, wenn Sie Ihr Objekt in der setTableDefinition() Methode (oder die zugehörige YAML-Konfigurationsdatei). Wenn dieses Flag nicht gesetzt ist, weiß Doctrine nicht, dass es aktualisiert werden soll. Sie sollten etwas haben, das wie folgt aussieht:

 $this->hasColumn('id', 'integer', 4, array(
                  'type' => 'integer',
                  'length' => 4,
                  'fixed' => false,
                  'unsigned' => true,
                  'primary' => true,
                  'autoincrement' => true //this flag right here
             )
 );

0voto

prodigitalson Punkte 59250

Rufen Sie an. refresh in der Datensatzinstanz vor der toArray .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X