我已经设置了与同一服务器上的两个数据库的连接。两者都有相关的实体,因为我需要插入数据并从表中检索数据。
但我想知道是否可以连接到另一台服务器上的数据库而不创建实体,只是从表中选择数据?我是否也必须在doctrine.yml 中设置连接?
事实是我只能在VPN下连接到这个数据库
如果有人已经遇到过这种情况, 预先感谢您!
希望这对您有帮助。
在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();
}
}