Básicamente, estoy creando una aplicación en la que el cliente quiere conectarse a sus propias bases de datos, e hice un formulario donde puede enviar sus credenciales.
connectionForm: this.$inertia.form({ driver: 'mysql', name: '', host: '', port: 3306, username: '', password: '', database: '', charset : 'utf8', collation: 'utf8_unicode_ci', prefix: '', })Matriz recibida en el controlador laravel
array:10 [▼ "driver" => "mysql" "name" => "Connection" "host" => "127.0.01" "port" => 3306 "username" => "root" "password" => null "database" => "clinic" "charset" => "utf8" "collation" => "utf8_unicode_ci" "prefix" => null ]Y quiero crear una función para verificar si las credenciales de la base de datos enviadas pueden conectarse a su base de datos, hasta ahora no he encontrado la manera de hacerlo pasando la matriz de credenciales. lo he intentado de esta manera
if (DB::connection($request->validated())->getDatabaseName()) { ray('The connection was successfull'); return 'Connected to the DB: ' . DB::connection('myDamnDbConnection')-getDatabaseName(); }pero requiere una cadena, no una matriz. ¿Hay alguna manera de hacer esto?
Agregue la configuración de la base de datos a su configuración como una nueva entrada y luego use eso:
config([ 'database.connections.temp' => $request->validated() ]); DB::connection('temp')->connect(); // Would throw an exception if it fails