在Doctrine2中动态设置鉴别器

时间:2012-03-28 22:33:15

标签: inheritance doctrine-orm discriminator

我有一个Parent实体,其中有2个子实体(FooBar)实现了SINGLE_TABLE继承。

是否可以创建new Parent()实体并将其鉴别器动态设置为foo而不是创建new Foo()

1 个答案:

答案 0 :(得分:0)

不,如果您确实需要评论中提到的方案,那么您可能会对某种工厂方法更好:

abstract class MyParent
{
    public static function fromString($type)
    {
        switch ($type) {
            case 'foo':
                return new Foo();
            case 'bar':
                return new Bar();
        }
        throw new DomainException('Unknown type: ' . $type);
    }
}