2017-02-27 3 views
1

J'essaye de faire une sorte d'installateur pour un CMS sur lequel je travaille. La page d'installation est essentiellement une page où l'utilisateur saisit l'hôte de la base de données, le port, le nom d'utilisateur, le mot de passe et le nom du schéma. Comment pourrais-je utiliser ces données entrées pour tester si je peux effectivement me connecter avec les entrées données?Laravel connec à la base de données avec l'utilisateur entré le nom d'utilisateur et mot de passe

Répondre

1

Vous pouvez obtenir les entrées utilisateur dans une fonction de contrôleur et mettre à jour le config/datadata.php. En supposant que le conducteur est mysql par défaut, vous pouvez le faire:

public function checkDatabaseConnection(Request $request) 
{ 
    //update the config 
    config(['database.connections.mysql' => [ 
     'host'  => $request->host, 
     'username' => $request->username, 
     'password' => $request->password 
    ]]); 

    //Check the credentials by calling PDO 
    try { 
     DB::connection()->getPdo(); 
    } catch (\Exception $e) { 
     return redirect()->back()->withErrors(["connection" => "Could not connect to the database. Please check your input."]); 
    } 
} 

Ne pas oublier d'ajouter use DB en haut de votre contrôleur.

+0

Merci! Je l'ai déjà fait fonctionner, mais c'est la même solution que je me suis trouvé, et cela a fonctionné, alors merci quand même. – Kaizokupuffball