2016-09-29 2 views
2

Je crée une nouvelle base de données dans phpmyadmin et de nouvelles tables.Base de données [] non configuré Laravel 5

Alors je

public function next(Request $request){ 
    $langs = DB::connection('mydb')->select('select * from lang'); 
    } 

et obtenir

Database [compgen] not configured. 

dans mon .env

DB_HOST=localhost 
DB_DATABASE=test 
DB_USERNAME=root 
DB_PASSWORD=123 

dans ma config/database.php

 'mysql' => [ 
     'driver' => 'mysql', 
     'host'  => env('DB_HOST', 'localhost'), 
     'database' => env('DB_DATABASE', 'test'), 
     'username' => env('DB_USERNAME', 'root'), 
     'password' => env('DB_PASSWORD', '123'), 
     'charset' => 'utf8', 
     'collation' => 'utf8_unicode_ci', 
     'prefix' => 'test_', 
     'strict' => false, 
    ], 
+0

faire une sauvegarde de composeur automatique et config artisan: effacer –

+0

''prefix' => 'test_'' avec la table nommée' lang'? Cela peut provoquer un conflit pour un constructeur éloquent Je suppose que –

Répondre

3

Vous utilisez une connexion unique, de sorte que vous n'avez pas besoin de le préciser:

$langs = DB::table('lang')->get(); 

Vous devriez utiliser la méthode connection() que lorsque vous travaillez avec multiple DB connections.

+0

Ou vous pouvez juste appeler la bonne connexion DB (appelée "mysql") en utilisant '$ langs = DB :: connexion ('mysql') -> select ('select * from lang') " – barryvanveen

2

Dans mon cas, j'ai utilisé 2 connexions db et la seconde n'a pas été ajouté en cache, l'appel de commande: php artisan config:cache a fait l'affaire.

Pour voir ce qui se passe, il suffit de sortir la variable $connections dans la méthode DatabaseManager->configure.

0

Dans mon cas c'était un mauvais nom d'utilisateur de base de données. Je l'avais fait dans mon config/database.php ainsi que le fichier .env et l'un d'eux était différent de l'autre. Trouvé ce fil lors de la recherche, pensé que cela pourrait aider quelqu'un.