In meinem Projekt habe ich mehrere haben class table inheritances wie folgt aus:Karte einen Diskriminator Spalte auf einem Feld mit Lehre 2
namespace MyProject\Model;
/**
* @Entity
* @InheritanceType("JOINED")
* @DiscriminatorColumn(name="discr", type="string")
* @DiscriminatorMap({"person" = "Person", "employee" = "Employee"})
*/
class Person
{
// ...
}
/** @Entity */
class Employee extends Person
{
// ...
}
Ich habe eine Methode, die Entitäten wandelt auf den Feldern auf Arrays basieren, die öffentliche Getter haben. Das Problem hier ist, dass ich die Vererbungsinformationen in meinem Array verliere, weil der Diskriminatorwert nicht in einem Feld gespeichert ist.
Also, was ich versuchte, wurde die folgende, würde die Hoffnung Lehre automatisch $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 zu machen? Oder müsste ich die Klassenmetadaten in meiner Entity-to-Array-Methode lesen?
Mögliche Duplikat (http://stackoverflow.com/ Fragen/4450381/Can-i-Access-Diskriminator-Feld-von-PHP-in-Lehre2) – Maks3w