Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Laravel:Undefinierter Index:Treiber

Der Fehler liegt daran, dass Ihnen der driver fehlt in Ihrer Konfiguration.

Ein besserer Weg, die Verbindung zu ändern, wäre, Ihre neue Verbindung in der Datenbankkonfigurationsdatei zu registrieren und die Verbindung zur Laufzeit zu ändern.

'connections' => [

    'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
    ],

    'newConnection' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => 'db2',
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
    ],
]

Jetzt können Sie Ihre Verbindung mit dem Namen ändern, mit dem Sie Ihre neue Verbindung definiert haben.

Standardverbindung ändern

Config::set('database.default', 'newConnection');
DB::reconnect('newConnection');

oder ändern Sie die Verbindung für einen Abfragegenerator

DB::connection('newConnection')->table('articles')->insert($articles);

Wenn Sie Eloquent-Modelle verwenden, können Sie die mit dem Modell verknüpfte Standardverbindung mithilfe von connection festlegen Eigenschaft

protected $connection = 'newConnection';

oder zur Laufzeit durch Aufruf von setConnection ändern

(new User)->setConnection('newConnection');

Wenn Sie die aktuellen Verbindungsdaten ändern möchten, können Sie diese nach Belieben ändern

Config::set('database.connections.mysql.database', 'db2');

und nach Änderungen müssen Sie anrufen

DB::reconnect('mysql');

oder

DB::purge('mysql');