2016-11-20 5 views
2

Я новичок в Laravel, просто попробовал некоторые уроки прямо сейчас. Я пытаюсь подключиться к базе данных, которую я настроил (и подключен к этой базе данных, используя как Sequel Pro, так и приложение командной строки MySQL). Я знаю, что моя база данных работает. Имя базы данных «auth».Laravel 5.3, Кажется, не может настроить, какую базу данных использовать?

Я также настроен Laravel, чтобы увидеть эту базу данных в файле /config/database.php:

'mysql' => [ 
     'driver' => 'mysql', 
     'host' => env('DB_HOST', 'localhost'), 
     'port' => env('DB_PORT', '3306'), 
     'database' => env('DB_DATABASE', 'auth'), 
     'username' => env('DB_USERNAME', 'homestead'), 
     'password' => env('DB_PASSWORD', 'secret'), 
     'charset' => 'utf8', 
     'collation' => 'utf8_unicode_ci', 
     'prefix' => '', 
     'strict' => true, 
     'engine' => null, 
    ], 

Это код, я использую для подключения к базе данных и вытащить запись, соответствует ID = 1:

class Controller extends BaseController { 
public function home() { 

    $user = \App\User::find(1); 
    echo '<pre>', print_r($user), '</pre>'; 

    return view('home'); 
} 
} 

Но когда я запускаю мое приложение, я вижу ошибку:

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'homestead.users' doesn't exist (SQL: select * from users where users . id = 1 limit 1)

Но если я на самом деле создать базу данных «homestead» с таблицей «пользователи», код работает очень хорошо.

Где мне не хватает опции конфигурации?

ответ

3

Вопрос относится к config/database.php. env('DB_DATABASE', 'auth') это сначала проверит, DB_DATABASE определен в файле .env, если не существует только он будет использовать базу данных auth.

Таким образом, вы можете обновить файл .env или обновить конфигурацию, чтобы не использовать переменную env. Как 'database' => 'auth'.

+0

Спасибо! Это прекрасно работает ... хотелось бы, чтобы мой урок упоминал об этом! – freehunter