前回に引き続きLaravel Commandをさわっていきます。今回はDB接続回りを見ていきます。
前回のブログ:Laravel Command はじめました
DB接続
XAMPPで環境を構築しましたのでMySQLを使用しようと思います。まずXAMPP Controll PanelでMySQLのStartを押してを起動します。
起動成功すると
A5 SQLで接続します。今回はデータベース「test」を使用します。
CREATE文でテーブルを作成します。usersテーブルを作成します。
1 2 3 4 5 6 7 |
create table test.users ( id int auto_increment , name varchar(20) not null , age int , mail varchar(100) , primary key(id) ) |
Laravel側の設定は、config\database.phpに設定があります。デフォルトの接続先が「mysql」になっています。同じファイルの下のほうに定義してあります。envファイルから読み込んでます。
.envファイルに接続先の設定を入れます。
次にモデルの作成を行います。makeコマンドでusersテーブルに対応したクラスを作成します。
作成されたモデルクラス「Users.php」に$connection、$table、$timestampsの設定を追加します。($connectionはなしでも大丈夫です、$timestampsは今回作成したテーブルにcreate_dt、update_dtがないので無効化します。)
では、前回作成したTestBatch.phpの記述を変更してデータ登録、選択をしてみます。まずモデルクラスのuseを追加します。
あとはこんな感じでデータ登録と選択を書きます。
Commandを実行します。データ取得できています。
A5 SQLで確認します。データが登録できています。
SQLのログ
DB接続は上手くいったのですが、デフォルト設定ではSQLのログが出力されません。これでは後で困るのでSQLのログ出力を行います。
参考サイト:Laravel SQLの実行クエリログを出力する
上のサイトの「3.サービスプロバイダーに登録してログファイルに自動出力」を行います。app\Providers\QueryServiceProvider.phpを作成し、上記サイトのサービスプロバイダーを参考にして記述します。
次にconfig\app.phpにサービスプロバイダクラスを設定します。
SQLのログ出力とは関係ないですが、TestBatchの記述もprint_rからログ出力に変えます。
実行すると、以下のようにSQLがログに出力されました。
おわりに
今回はLavavel CommandでDB接続関係を確認しました。ここまでくればプロジェクトで使用することができそうです。