はじめに
この記事ではXAMMPを使ってphpMyAdminのMySQLからデータを取得する方法を紹介します。
公式ドキュメントや参考書の中で、VirtualBox使った仮想環境でhomesteadのDBに接続したり、SQLite3を使った方法などが紹介されていたのですが、XAMPPを使った方法はあまりなく、一番手軽だったので説明していきます。
動作環境
- Windows10
- Laravel 5.8
- XAMPP v3.2.3
- PHP 7.3.5
LaravelでXAMPPを使ったデータベースの接続方法
XAMPPのインストール
以下の記事を参考にしながら、Apache と MySQLをStartさせるところまで進めてください。
今さら聞けない!XAMPPをインストールする方法【超初心者向け】
Laravelテンプレートのインストール
以下のサイトを参考にしてComposerを使ってLaravelのテンプレートをインストールしてください。
導入手順を解説!Laravelのインストール方法【初心者向け】
私は以下のコマンドでLaravelPracticeというフォルダを作成しました。
phpMyAdminでデータベースの作成
以下のサイトを見ながら、適当なデータベースとテーブル、カラムを作成してください。
今回は、
データベース名:laravel_practice
テーブル名:people
で作成しました。
サイトの接続確認
まずはXAMPPで接続できるか試してみましょう。
Laravelが入ったフォルダをxampp/htdocsの中に入れてください。xamppのフォルダはデフォルトだとCの下にあります。
次に「http://localhost/LaravelPractice/public/ 」にアクセスしてください。LaravelPracticeの部分は各自Laravelのテンプレート用に作成したフォルダの名前が入ります。
以下の画面が表示されれば接続テストは完了です。
Bladeを使ったページの作成
LaravelPractice/resources/views内に「test.blade.php」というファイルを作成してください。
test.blade.phpに以下のコードを入力してください。nameやmailといった変数名は各自作成したテーブル内のカラム名を指定してください。
Controllerの作成
コマンドプロンプトを開き、cd で LaravelPracticeまで移動し、以下のコマンドを実行してください。
LaravelPractice/app/Http/Controllers/TestController.phpが生成されるので、開いて以下のコードに書き換えてください。
useでnamespaseに
を追加するのがポイントです。
今回はSQL文でpeopleテーブルの値を全て取得します。
web.phpのRouteを編集
LaravelPractice/routes/web.phpを開き、以下のコードを追加してください。
これで、http://localhost/LaravelPractice/public/testに接続したときに、TestControllerのindexが実行されます。
.envファイルを編集
LaravelPractice/.envファイルを開き、DB_CONNECTIONなどを以下の設定に変更してください。phpMyAdminでユーザー名やパスワードを設定している場合は適宜変更してください。
database.phpファイルの編集
LaravelPractice/config/database.phpを開き、以下の部分を確認してください。
これで設定は完了です。
テストページの確認
http://localhost/LaravelPractice/public/test に接続すると、以下の画面が表示されると思います。
うまく表示されなかった場合
キャッシュを消す
Laravelでは.envファイルの変更が反映されていないことがよくあります。
コマンドプロンプトのcd でLaravelPracticeへ移動し、以下のコードを実行してからページを更新してください。
スーパーリロードする
CSSなどが反映されないときは「Shift + F5」を押してスーパーリロードしてください。
XAMPPを再起動する
XAMPPを停止して、ブラウザを再起動してください。
以上3つを試してもエラーが消えない場合はコードが間違ってないか今一度確かめてください。
これで、XAMPPを使ったLaravelでのデータベース接続方法の紹介を終わります。