ウェブログラム ~学習するな実践せよ~

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

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

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

まずはデータを作る

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

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

データベース作成

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

SQL
CREATE DATABASE webrogram_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 `webrogram_app`.`users` (`name`, `age`) VALUES ('takeshi', '20');

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

MySQLとの接続設定

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

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

.envの設定

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

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

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

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

DBの接続確認

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

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

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

php artisan tinker

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

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

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

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

DB接続失敗の例

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

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

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

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

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

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