Symfony 5 - 一个实体,一个存储库和两个数据库

Symfony 5 - One entity, one Repository and two Databases

我在通过 Symfony 存储库查询我的数据库时遇到问题。 如果我不指定存储库

/**
 * ProductsText
 *
 * @ORM\Table(name="products_text")
 * @ORM\Entity
 */

我可以 select 我的一个数据库通过这样使用 Doctrine:

->getRepository(ProductsText::class, "db1").

但是如果我声明存储库:

/**
 * ProductsText
 *
 * @ORM\Table(name="products_text")
 * @ORM\Entity(repositoryClass="App\Repository\Product\ProductsTextRepository")
 */

它只是 select 我从中提取实体的数据库。 我不能使用两个不同的实体,因为用户 select 在登录时是“数据库”。不幸的是,我也不能合并这两个数据库,因为它们不是多租户。

我的猜测是,我可以通过将注册表从一般存储库中保留下来来解决问题。不幸的是,我之前的尝试以前端不再加载而告终。

有效,但仅适用于一个数据库:

class ProductsTextRepository extends ServiceEntityRepository
{
    public function __construct(ManagerRegistry $registry)
    {
        parent::__construct($registry, ProductsText::class);
    }

无效:

class TbProductsTextRepository
{
  /**
   * @var EntityRepository
   */
  private $repository;

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

不幸的是,我不了解存储库的重新生成机制。

我使用:

我通过不“注册”存储库解决了这个问题。 通过使用 EntityRepository 而无需构造,我可以将存储库用于两个数据库。

use Doctrine\ORM\EntityRepository;


class TbProductsTextRepository extends EntityRepository
{