gpt4 book ai didi

symfony - symfony 中的一个实体,两个存储库

转载 作者:行者123 更新时间:2023-12-04 12:40:10 25 4
gpt4 key购买 nike

我想为 1 个实体使用 2 个存储库。

原因是:我有 2 个包,两个包都使用相同的实体。我希望将这两个功能分开。
有时我需要特定的查询到包中。

可以将 1 个存储库放入一个包中,并将第二个存储库放入另一个中吗?
也许这是一种错误的方式?

如果有人有想法。

谢谢 !

最佳答案

2019年更新

我会创建 2 个存储库。将所有方法添加到一个存储库是没有意义的,仅仅因为它们共享实体。通过这种方式,我们最终可以为每个存储库提供 30 个方法。

第一个存储库

namespace App\Repository;

use App\Entity\Post;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\EntityRepository;

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

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

/**
* @return Post[]
*/
public function getAll(): array
{
// ...
}
}

...和第二个存储库
namespace App\Repository;

use App\Entity\Post;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\EntityRepository;

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

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

/**
* @return Post[]
*/
public function getUnpublished(): array
{
// ...
}
}

您可以在 How to use Repository with Doctrine as Service in Symfony 中阅读有关此概念和原因的更多信息邮政

关于symfony - symfony 中的一个实体,两个存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33230977/

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