Symfony:连接到外部数据库而不创建实体

问题描述 投票:0回答:1

我已经设置了与同一服务器上的两个数据库的连接。两者都有相关的实体,因为我需要插入数据并从表中检索数据。

但我想知道是否可以连接到另一台服务器上的数据库而不创建实体,只是从表中选择数据?我是否也必须在doctrine.yml 中设置连接?

事实是我只能在VPN下连接到这个数据库

如果有人已经遇到过这种情况, 预先感谢您!

database symfony mariadb
1个回答
0
投票

希望这对您有帮助。

在doctrine.yaml中:

doctrine:
  dbal:
    default_connection: your_database
    connections:
      your_database:
        driver: pdo_mysql
        url: '%env(resolve:YOUR_DATABASE_URL)%'
        server_version: 8.0.38
        charset: utf8mb4

在 YourRepository.php 中

namespace App\Repository;

use Doctrine\DBAL\Query\QueryBuilder;
use Doctrine\Persistence\ManagerRegistry;


class PackagingRepository
{
    public function __construct(
        private readonly ManagerRegistry $registry
    ) {}

    public function getPackagings(): array
    {
        /** @var QueryBuilder $qb */
        $qb = $this->registry->getConnection('your_database')->createQueryBuilder();

        return $qb->select('id')
            ->addSelect('code')
            ->addSelect('active as is_active')
            ->addSelect('sortorder as sort_order')
            ->addSelect('tags')
            ->from('packaging')
            ->fetchAllAssociative();
    }

}
© www.soinside.com 2019 - 2024. All rights reserved.