2016-11-20 8 views
2

私はLaravelが初めてです。ちょうど今チュートリアルを試してみてください。私は設定したデータベースに接続しようとしています(Sequel ProとMySQLコマンドラインアプリケーションの両方を使ってそのデータベースに接続しています)。私のデータベースが動作していることは分かっています。データベースの名前は「auth」です。Laravel 5.3、使用するデータベースを構成できないようですか?

私はまた/config/database.phpファイルにこのデータベースを参照するLaravelを設定した:

'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.phpです。 env('DB_DATABASE', 'auth')これは最初にのみ存在しない場合は、それはauthデータベースを使用します、DB_DATABASE.envファイルに定義されているかどうかをチェックします。

だから、.envファイルを更新するか、ENV変数を使用しないようにする設定を更新することができます。 'database' => 'auth'のようになります。

+0

ありがとうございます!それは完璧に動作します...私のチュートリアルで言及したい! – freehunter

関連する問題