Doctrine 获取扩展给定抽象类的所有模型的存储库

jul*_*lew 2 php doctrine doctrine-orm

我有两个模型:NoteItemTaskItem。两者都来自AbstractStreamItem

abstract class AbstractCommentsItem
{
    …
}

class CommentItem extends AbstractCommentsItem
{
    …
}

class TaskItem extends AbstractCommentsItem
{
    …
}
Run Code Online (Sandbox Code Playgroud)

现在我想在一个getRepository命令中获取两个模型的存储库。

有可能吗?我考虑过单表继承,但不确定这是否是正确的方法。

Jak*_*zak 5

是的,单表继承在这里是一个有效的解决方案。您将能够:

$entityManager->getRepository(AbstractCommentsItem::class);
Run Code Online (Sandbox Code Playgroud)

获取所有子类型的单个存储库。

我实际上正在我当前的项目中这样做。