2016-09-29 5 views
2

Ich erstelle neue DB in phpmyadmin und neue Tabellen.Datenbank [] nicht konfiguriert Laravel 5

dann mache ich

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

und

Database [compgen] not configured. 

in meinem .env

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

in meine Config erhalten/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

tun ein Composer Dump Autoload und Artisan Config: löschen –

+0

''Präfix' => 'test_'' zusammen mit der Tabelle namens' lang'? Dies kann zu einem Konflikt für eloquente Builder führen Ich denke –

Antwort

3

Sie verwenden einzelne Verbindung, so dass Sie brauchen nicht zu spezifizieren:

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

Sie connection() Methode nur verwenden sollten, wenn Sie mit multiple DB connections arbeiten sind.

+0

Oder Sie könnten einfach die richtige DB-Verbindung (namens "mysql") mit '$ langs = DB :: connection ('mysql') -> auswählen ('select * from lang') ; ' – barryvanveen

2

In meinem Fall habe ich 2 db-Verbindungen und den zweiten addierten nicht zwischengespeichert wurde, den Kommandoaufruf: php artisan config:cache der Trick.

Um zu sehen, was los ist, war es ausreichend, die $connections Variable in DatabaseManager->configure Methode auszugeben.

0

In meinem Fall war es eine schlechte Datenbank Benutzername. Ich hatte es in meiner config/database.php sowie die .env-Datei und einer von ihnen war anders als die anderen. Habe diesen Thread bei der Suche gefunden, dachte, das könnte jemandem helfen.

Verwandte Themen