Установка дискриминатора динамически в Doctrine2 - PullRequest
0 голосов
/ 29 марта 2012

У меня есть Parent сущность с 2 дочерними сущностями (Foo и Bar), реализующими наследование SINGLE_TABLE.

Можно ли создать new Parent() сущность и динамически установить ее дискриминатор на foo вместо создания new Foo()?

1 Ответ

0 голосов
/ 29 марта 2012

Нет, нет, если вам действительно нужен сценарий, упомянутый в вашем комментарии, то вам, вероятно, будет лучше использовать какой-то фабричный метод:

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);
    }
}
...