Mysql
 sql >> Base de données >  >> RDS >> Mysql

Laravel :Index indéfini :pilote

L'erreur est due au fait qu'il vous manque le driver dans votre configuration.

Une meilleure façon de changer la connexion serait d'enregistrer votre nouvelle connexion dans le fichier de configuration de la base de données et de modifier la connexion au moment de l'exécution.

'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,
    ],
]

Vous pouvez maintenant modifier votre connexion en utilisant le nom que vous avez utilisé pour définir votre nouvelle connexion.

Changer la connexion par défaut

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

ou modifier la connexion pour un générateur de requête

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

ou si vous utilisez des modèles Eloquent, vous pouvez définir la connexion par défaut associée au modèle à l'aide de la connection propriété

protected $connection = 'newConnection';

ou modifier au moment de l'exécution en appelant setConnection

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

Si vous souhaitez modifier les détails de connexion actuels, vous pouvez les modifier comme vous le souhaitez

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

et après les changements, vous devez appeler

DB::reconnect('mysql');

ou

DB::purge('mysql');