2016-11-20 44 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)

但是,如果我实际上用名为“users”的表创建数据库“homestead”,代码运行得很好。

我在哪里丢失配置选项?

回答

3

问题出在config/database.phpenv('DB_DATABASE', 'auth')这将首先检查DB_DATABASE是否定义在.env文件中,如果不存在,则只会使用auth数据库。

因此,您可以更新.env文件或更新配置为不使用env变量。像'database' => 'auth'

+0

谢谢!这工作完美...希望我的教程提到! – freehunter