Php Symfony 5无法为动态数据库连接自动连接参数$Driver

Php Symfony 5无法为动态数据库连接自动连接参数$Driver,php,symfony,doctrine,sqlsrv,Php,Symfony,Doctrine,Sqlsrv,我现在面临一个问题,我解释自己。在我的项目中,我尝试与数据库建立动态连接(我有两个虚拟机,它们具有不同的IP,但具有相同的标识符和MSSQL数据库引擎(SQLSRV)的表) 我试着这样做-> use Doctrine\DBAL\Driver\SQLSrv\Driver; /** * @Route("/testconnection", name="test_connect") */ public function testConnection(Driv

我现在面临一个问题,我解释自己。在我的项目中,我尝试与数据库建立动态连接(我有两个虚拟机,它们具有不同的IP,但具有相同的标识符和MSSQL数据库引擎(SQLSRV)的表)

我试着这样做->

use Doctrine\DBAL\Driver\SQLSrv\Driver;
 /**
 * @Route("/testconnection", name="test_connect")
 */
public function testConnection(Driver $Driver){

    $connectionParams = array(
        'dbname' => 'job',
        'user' => 'sa',
        'password' => 'Lasernet@2020',
        'host' => '192.168.1.34',
        'driver' => 'pdo_sqlsrv',
    );

    $conn = $Driver->connect($connectionParams);
    dd($conn);
}
错误消息

无法自动连接“App\Controller\HomeController:testConnection()”的参数$Driver:它引用类“Doctrine\DBAL\Driver\SQLSrv\Driver”,但不存在此类服务。

但问题是Symfony给我回了一个我发现很难解决/理解的错误。 如果有人能解决我的问题/成功地与数据库建立动态连接


如果您需要更多信息,请告诉我。

错误消息会告诉您。不存在这样的服务。 您必须在
public/services.yaml
中将
Doctrine\DBAL\Driver\SQLSrv\Driver
类定义为symfony服务来自动连接它

使用以下内容更新您的
公共/服务.yaml

服务:
条令\DBAL\Driver\SQLSrv\Driver:
自动连线:对
但是为什么要自动连接这个类呢?你也会有同样的行为

public function testConnection(){
$Driver=新驱动程序();
$connectionParams=数组(
'dbname'=>'job',
“用户”=>“sa”,
'密码'=>'Lasernet@2020',
'主机'=>'192.168.1.34',
“驱动程序”=>“pdo_sqlsrv”,
);
$conn=$Driver->connect($connectionParams);
dd(康涅狄格州);
}
如果您的连接参数中没有真正的动态值,比如
$connectionParams['dbname']='sqldb'.$i
,最好使用原则dbal配置并使用
$this->getDoctrine()->getConnection('name')获取连接在控制器中


考虑将错误信息的相关部分复制/粘贴到问题中。请避免在现有问题中添加后续问题。如果您已将其标记为已解决,请发布带有新错误的新问题。谢谢您的回答。事实上,这是一个监视应用程序,它可以让您管理几十个不同的数据库,但总是使用相同的结构(表、字段)。当我想连接到数据库时,输入的信息存储在数据库(应用程序的参数数据库)中,然后从数据库中输入的连接数据连接到实例。翻译:www.DeepL.com/Translator(免费版)