Laravelのモデル作成前にDBを用意して、DBの接続確認を行う

シェアしてね〜🤞

今回からモデルを作成していきます。

このシリーズではモデルはデータを扱うものとして説明していきますが、モデルは他の側面もあるので、そのことは頭の片隅においておいてください。

まずはデータを作る

モデルはデータを扱うものといいましたが、そのデータ自体を始めに用意してやる必要があります。コードを書くのはそれからです。

データベースはMySQL5.7という前提で勧めていきますので、用意しておいてください。

データベース作成

mysqlに接続しデータベースを作成します。

SQL

CREATE DATABASE sample_app;

テーブルの作成

今回は話を簡単にするためusersテーブルだけを作成することにします。
Laravelの場合はテーブル名はすべて複数形でというルールがありますので、userテーブルではなくて、usersテーブルとしています。

SQL

CREATE TABLE `users` (
    `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'ユーザID',
    `name` varchar(280) NOT NULL DEFAULT "" COMMENT '名前',
    `age` int unsigned NOT NULL COMMENT '年齢',
    `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '作成日',
 PRIMARY KEY (`id`)  
) COMMENT='ユーザテーブル';

名前と年齢と作成日くらいは用意しておくことにしましょう。

サンプルデータ投入

サンプルデータを一つだけ投入しておきましょう。

SQL

INSERT INTO `sample_app`.`users` (`name`, `age`) VALUES ('takeshi', '20');

※普通のシステムだと、例えばSNSサービスでいうと、usersというテーブルや、ユーザがコメントしたときのcommentsテーブルなど、いいねをしたなどのevaluationsテーブルなど作成したりします。

ちなみにDBクライアントツールは「TablePlus」がオススメです!

UIもオシャレで、操作性も抜群に良いです。使い方を、

【TablePlusの使い方】DB接続してデータ操作をやってみるで紹介しているので、ぜひ使ってみてください。

MySQLとの接続設定

MySQLでデータベース、テーブル、データの用意はできました。
ではどうやってLaravelとMySQLを接続するのでしょう?

接続の設定は「.env」というファイルを使って行っていきます。

.envの設定

.envファイルはプロジェクト直下にあるります。
.envファイルとはLaravelアプリケーション全体で使ういろいろな設定ファイルのことです。

今回はDBに接続したいので、以下のように記述します。

DB_CONNECTION=mysql  
DB_HOST=127.0.0.1  
DB_PORT=3306  
DB_DATABASE=sample_app  
DB_USERNAME=root  
DB_PASSWORD=xjNPUpj.p51?

お使いの環境に合わせて行ってください。
これの設定だけでDBに接続することが可能になります。

DBの接続確認

設定は終わりましたが、本当にDBに接続できるようになっているのでしょうか?

Laravelには便利なtinkerと呼ばれるものがあり、これを使うことでLaravelのいろいろな処理を呼び出すことができます。

プロジェクト直下で以下のようにコマンドを叩いてみてください。

docker-compose exec laravel.test php artisan tinker

これでtinkerの中に入れました

続いて、以下を実行してください

DB::table('users')->get();

これはusersテーブルのデータを全件取得するというものです。以下のようにデータが取得できていれば、DBへの接続は成功しています。

DB接続失敗の例

ついでに接続失敗した例も見ておきましょう。

.envファイルのDBのパスワードをテキトーなものに変更してみてください。
そしてもう一度tinkerにて以下を実行すると

DB::table('users')->get();

以下のようにDBへのアクセス失敗のエラーがでます。

.envファイルによって、DBへ接続することが出来るということがわかりました。

次回はDBをLaravelのプログラム上(モデル)からアクセスして、データを取得、viewへの表示など行っていきましょう。
LaravelをDBと絡めてプログラムを書いていくのは楽しいですよ〜。

シェアしてね〜🤞
PHPのMVCフレームワーク 「Laravel 9.x 」超入門 セットアップから基本構文まで
1. LaravelにおけるMVCとは?図解してみた
2. Laravelのルーティングからコントローラを呼出し、値をビューに渡す
3. Laravelのルーティングの仕組みと一番簡単な使い方
4. Laravelのモデル作成前にDBを用意して、DBの接続確認を行う
5. Laravel Eloquentモデルを使ってデータを取得して、viewに表示してみる
6. Laravel Eloquentでデータを追加・更新・削除を行う
7. Laravelでバリデーション実装!エラーメッセージを日本語で表示