Laravelの「モデルとEloquent ORM」における「モデルの作成とマイグレーション」について、以下に詳しく説明します。
1. モデルとは
Laravelにおける**モデル(Model)**は、データベースのテーブルと対応するPHPクラスであり、**Eloquent ORM(Object-Relational Mapping)**を通じて、テーブルの行をオブジェクトとして扱えるようにするものです。
Eloquentは、モデルを通じてデータベースとやり取りを行うため、SQLを書くことなく、直感的な文法でCRUD操作(作成、取得、更新、削除)を実現できます。
2. モデルの作成
モデルは、artisanコマンドを使って作成します。
基本構文
例:Postモデルを作成する
Postモデルを作成する
これにより、app/Models/Post.php に以下のようなクラスが生成されます:
3. モデルとマイグレーションの同時作成
モデル作成時にマイグレーションファイルも同時に生成したい場合は、-mオプションを使います。
例
これにより、以下の2つが作成されます:
-
モデル:
app/Models/Post.php -
マイグレーション:
database/migrations/xxxx_xx_xx_xxxxxx_create_posts_table.php
4. マイグレーションとは
**マイグレーション(Migration)**は、データベースのスキーマ(構造)をバージョン管理できる仕組みです。新しいテーブルの作成、カラムの追加・削除などをPHPコードで記述できます。
マイグレーションファイルの内容例
5. マイグレーションの実行
マイグレーションファイルを適用して、データベースにテーブルを作成するには以下のコマンドを使用します:
これにより、posts テーブルがデータベースに作成されます。
6. モデルとテーブル名の対応
デフォルトでは、モデル名が単数形のとき、その複数形の名前がテーブル名になります。
-
Postモデル →postsテーブル -
UserProfileモデル →user_profilesテーブル
テーブル名を手動で指定したい場合は、モデル内で $table プロパティを明示的に設定します:
まとめ
| 項目 | 内容 |
|---|---|
| モデルの役割 | テーブルと行をオブジェクトとして扱う |
| 作成コマンド | php artisan make:model モデル名 |
| マイグレーションの役割 | テーブル構造の定義とバージョン管理 |
| 実行コマンド | php artisan migrate |
ChatGPT4o 生成日:2025/06/23