首页 > 解决方案 > 当我尝试使用 laravel 8 动态更改连接时,为什么会出现此错误?

问题描述

Salem,我是 laravel 8 的新手,我正在使用 sql server 数据库,我有多个数据库连接,我应该动态更改连接,这是我的代码,但是当我尝试运行下面的代码时,我得到了这个错误: 试图获取非对象的属性“驱动程序”

首先:我创建了一个“DatabaseConnection”助手:

namespace App\Helpers;
use Config;
use DB;

class DatabaseConnection
{
    public static function setConnection($params)
    {
        config(['database.connections.paiement' => [
            'driver' => $params->driver,
            'host' => $params->host,
            'username' => $params->username,
            'password' => $params->password
        ]]);

        return DB::connection('paiement');
    }
}

在我的控制器中我做了:

public function CheckUser(Request $request){
  // database_name: $dbs
  $dbs = $request->db;   /* db is the name of selected option */
  $params['connection_name'] = 'paiement';
     $params['dbname'] = $dbs;
     $params['driver'] = 'sqlsrv';
     $params['host'] = 'localhost';
     $params['username'] = 'root';
     $params['password'] = '123';
     $params['port'] = 1433;

 $connection = DatabaseConnection::setConnection($params);
 $getTableData = $connection->table('client')->where('code_client',$request->name)->where('password',$request->password)->exists());
}

注意:$dbs 是从选择选项中选择的数据库的名称(我的选择选项在我的刀片中包含多个数据库)。

问题出在哪里 ?请提供任何帮助。提前致谢。

标签: phplaravel-8laravel-bladesql-server-2019

解决方案


推荐阅读