【Laravel8】DB周りの解説(テーブル作成、データ投入、データ検索等)- テーブル作成編 (初級レベル)

2021年10月4日

はじめに

Laravelのテーブル作成方法の解説をしていきます
mysqlサーバー直での作成ではなく、
Laravelのコマンドから作成していく方法です。

概要

テーブル名 Members (基本的にテーブルは複数形がよい)
以下のスキーマーのテーブル作成をします。

※LaravelアプリからのDBの接続については以下のページをご参照ください。
https://karaagelovers.com/laravel-table-creation/

FieldTypeNullKeyDefaultExtra
idbigint unsigned NOPRINULLauto_increment
usernamevarchar(255)NONULL
emailvarchar(255)NONULL
email_verified_attimestampYESNULL
created_attimestampYESNULL
updated_attimestampYESNULL

テーブル作成

以下のコマンドを実行します。

php artisan make:model クラス名(テーブル名単数) --migration
例)php artisan make:model Member --migration  

モデルのクラス名はテーブルの単数系 
例)テーブル名 members クラス名Memberで作ると、
Laravel内の補完機能が働いて楽に作れます。

上記コマンドを実行時に自動生成される以下のファイルの編集をします。
(Xの部分はコマンド打った時の日付等が挿入されます。)
編集database/migrations/XXXX_XX_XX_XXXXX_create_members_table.php
例)database/migrations/2021_10_01_055724_create_members_table.php

Before(編集前)

After(編集後)

解説


up()関数の中にスキーマー定義を書きます。

Beforeの画像ですでにup()関数にあるものは、
php artisan make:model Member –migration  のコマンドを打ったときに
自動生成されているものなので適宜修正してください。

スキーマー定義の書き方の一例です。

ページ上部のスキーマーを生成するときのコードです。

//プライマリーキー
$table->id();

//文字列のカラム Varchar(255)のカラムが作成される
$table->string('username’); usernameはカラム名


//timestampのカラム、カラムタイプ定義の後に->nullable() こんな感じでnull OKかどうか設定できる。デフォルトはNull NG。こんな感じでカラム修飾子も設定可能です。

$table->timestamp('email_verified_at’)->nullable()

その他の設定項目についてはこちらご確認ください。
https://readouble.com/laravel/master/ja/migrations#column-modifiers

//created_at(作成日時),updated_at(更新日時)のカラムが自動生成される
$table->timestamps();


テーブル名は複数形 例)members 
モデルはテーブルの単数系 例)Memberで作ると、
Laravel内の補完機能が働いて楽に作れます。

命名規則が合わない場合も定義を追加、変更することにより
既存のテーブル名、定義に合ったテーブルの作成ができます。

詳しくは公式ドキュメントのこのページを確認してください。
id,string,timestamp以外の定義方法もこのページに載っています。
https://readouble.com/laravel/8.x/ja/migrations.html#creating-tables


ファイルの編集が終わったら、

テーブル作成をコマンドでします。
このコマンドを実行しましょう。

 php artisan migrate

無事テーブル作成できたかどうかDBを覗いてみます。

テーブル作成できていました!!

以上、Laravelでのテーブル作成方法の説明でした。

次回はテーブルへのデータ挿入方法について解説します。

では!!

Posted by karaagelovers