2016-09-29 2 views
2

Создаю новый db в phpmyadmin и новых таблицах.База данных [] не настроена Laravel 5

Тогда я сделать

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

и получить

Database [compgen] not configured. 

в моем .env

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

в моей конфигурации/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

сделать компоновку автозагрузки автозагрузки и артефактов: очистить –

+0

''префикс' => 'test_'' вместе с таблицей с именем' lang'? Это может вызвать конфликт для красноречивого строителя. Я думаю, –

ответ

3

Вы используете одно соединение, так что вам не нужно указывать его:

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

Вы должны использовать connection() метод только тогда, когда вы работаете с multiple DB connections.

+0

Или вы можете просто вызвать правильное соединение с БД (называемое «mysql»), используя '$ langs = DB :: connection ('mysql') -> select ('select * from lang') ; ' – barryvanveen

2

В моем случае я использовал 2 дБ соединения и второй добавил не кэшируются, команды вызова: php artisan config:cache сделал трюк.

Чтобы увидеть, что происходит, этого было достаточно для вывода переменной $connections в методе DatabaseManager->configure.

0

В моем случае это было неправильное имя пользователя базы данных. Я установил его в свой config/database.php, а также файл .env, и один из них был другим, чем другой. Нашел эту нить при поиске, подумал, что это может кому-то помочь.

Смежные вопросы