gpt4 book ai didi

doctrine-orm - 如何在 Doctrine2 中为单个实体使用多个存储库?

转载 作者:行者123 更新时间:2023-12-04 18:04:44 24 4
gpt4 key购买 nike

我正在考虑第一次在项目中使用 Doctrine2。在我的研究中,让我感到震惊的一件事是:

<?php
/**
* @Entity(repositoryClass="BugRepository")
* @Table(name="bugs")
**/
class Bug
{
//...
}

似乎我只能将一个存储库与每个实体相关联?如果这个 Repository 类变得太大(方法/代码太多)并且我想将它分成多个 Repository 类,我该怎么办?

最佳答案

存储库即服务正是您的情况:

<?php

/**
* @Entity
* @Table(name="bugs")
**/
class Bug
{
//...
}

然后创建第一个存储库:

<?php

use Doctrine\ORM\EntityManager;
use Doctrine\ORM\EntityRepository;

final class FirstBugRepository
{
/**
* @var EntityRepository
*/
private $repository;

public function __construct(EntityManager $entityManager)
{
$this->repository = $entityManager->getRepository(Bug::class);
}

// ... some methods
}

下一个:

<?php

use Doctrine\ORM\EntityManager;
use Doctrine\ORM\EntityRepository;

final class SecondBugRepository
{
/**
* @var EntityRepository
*/
private $repository;

public function __construct(EntityManager $entityManager)
{
$this->repository = $entityManager->getRepository(Bug::class);
}

// ... other methods
}

您想了解更多和完整的示例吗?查看帖子How to use Repository with Doctrine as Service in Symfony

关于doctrine-orm - 如何在 Doctrine2 中为单个实体使用多个存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29158378/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com