Anzeigen einer Diskriminator-Spalte, um ein Feld mit Doctrine 2

In meinem Projekt habe ich mehrere Klasse Tabelle Erbschaften wie diese:

namespace MyProject\Model;

/**
 * @Entity
 * @InheritanceType("JOINED")
 * @DiscriminatorColumn(name="discr", type="string")
 * @DiscriminatorMap({"person" = "Person", "employee" = "Employee"})
 */
class Person
{
    //...
}

/** @Entity */
class Employee extends Person
{
    //...
}

Habe ich eine Methode, die konvertiert Entitäten, die auf arrays basiert auf den Feldern, die öffentlichen Getter. Das problem hier ist, dass ich verlieren die erbschaft-Informationen in mein-array, da die Diskriminator-Wert ist nicht gespeichert in einem Feld.

Also, was ich versucht habe, war die folgende, in der Hoffnung Lehre würde automatisch eingestellt $disc:

class Person
{
    //can I automatically populate this field with 'person' or 'employee'?
    protected $discr;

    public function getDiscr() { return $this->discr; }
    public function setDiscr($disc) { $this->discr; }

    //...
}

Gibt es eine Möglichkeit, diese Arbeit in der Lehre? Oder brauche ich zum Lesen der Klasse Metadaten, die in meiner Person-zu-array-Methode?

InformationsquelleAutor sroes | 2014-01-22
Schreibe einen Kommentar