Laravelでモデルを作成する方法をやさしく解説!php artisan make:model入門
生徒
「先生、Laravelでデータベースを操作するにはモデルが必要って聞いたんですが、どうやって作るんですか?」
先生
「いい質問ですね。Laravelではコマンドを使って簡単にモデルを作ることができます。そのコマンドがphp artisan make:modelです。」
生徒
「コマンドって難しそうですが、初心者でも使えますか?」
先生
「心配いりません。数文字入力するだけで自動的にファイルが作られるので、誰でも簡単にモデルを作成できますよ。」
生徒
「それなら安心です。実際にどうやって作るのか教えてください!」
先生
「では、Laravelでモデルを作成する基本の流れを説明していきましょう。」
1. モデルとは?
Laravelのモデル(Model)とは、データベースのテーブルとやり取りをする役割を持つクラスのことです。例えば、ユーザーを管理するusersテーブルがあれば、そのテーブルに対応するモデルがUserクラスになります。モデルを通じて、データの取得・保存・更新・削除などを行います。
簡単に言うと「モデルはデータベースとアプリケーションをつなぐ窓口」です。
2. モデルを作成する基本コマンド
Laravelでモデルを作成するには、ターミナル(黒い画面の操作ツール)で次のコマンドを入力します。
php artisan make:model User
このコマンドを実行すると、app/Models/User.phpというファイルが自動で作成されます。Userというモデルができたことで、usersテーブルと簡単に連携できるようになります。
3. モデルの中身を確認してみよう
作成されたモデルファイルを開いてみると、次のような内容が記述されています。
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
use HasFactory;
}
ここで重要なのはextends Modelの部分です。これによって、UserクラスはEloquent ORMの機能を引き継いでいます。つまり、このモデルを使えばSQLを直接書かなくてもデータベースを操作できるのです。
4. モデル名とテーブル名の関係
Laravelでは、モデル名とテーブル名が自動的に対応するようになっています。
Userモデル →usersテーブルPostモデル →postsテーブルProductモデル →productsテーブル
このように、モデルは単数形、テーブルは複数形が基本です。もちろん、もし違う名前で使いたい場合は、モデルの中でテーブル名を指定することもできます。
5. モデル作成時にオプションを使う
php artisan make:modelには便利なオプションがあります。よく使うのは次の2つです。
(1)マイグレーションファイルも同時に作成する
php artisan make:model Post -m
-mをつけると、モデルと一緒にマイグレーション(テーブルを作成する設計図ファイル)も作成されます。
(2)コントローラやファクトリも同時に作成する
php artisan make:model Product -mc
-mcをつけると、モデルとコントローラ、さらにマイグレーションもまとめて作成できます。これにより、開発の準備が一気に進められます。
6. 作成したモデルを使ってみよう
モデルを作成したら、実際に使ってみましょう。例えば、Userモデルを使ってユーザーを新しく登録するコードは次のようになります。
$user = new User();
$user->name = "佐藤花子";
$user->email = "hanako@example.com";
$user->password = bcrypt("password123");
$user->save();
このコードを実行すると、データベースのusersテーブルに新しいデータが追加されます。SQLを一切書かなくても登録ができるのがEloquent ORMの強みです。
7. artisanコマンドを使うメリット
php artisan make:modelを使うメリットはたくさんあります。
- 自動でファイルを作成してくれる → 手作業のミスを防げる
- 決まった場所に保存される → ファイルの整理が簡単
- オプションで関連ファイルも一緒に作れる → 作業効率が上がる
- 初心者でも迷わず使える → 入力するのはたった1行のコマンドだけ
このように、artisanコマンドはLaravel開発に欠かせない便利な道具です。