モデルの解説と作成方法【初心者のためのLaravel超入門講座5】

Laravel 入門講座

初心者のためのLaravel超入門講座5回目はモデルの作成と設定について。

モデルは、データベース上の各テーブル間の連携を設定する非常に重要な部分。

前回のマイグレーションとセットで使いこなしていきましょう。

なお前回までの内容はこちらをご覧ください。

Laravelのモデルとは

まず最初に、モデルについて解説します。

講座の第1回目で、LaravelはMVCモデルを採用していると書きました。

モデルは③の部分に該当し、データベースとの連携を担当し、得られた結果をコントローラーに返します。

Laravel MVCモデル

「MVCモデルってなんだっけ?」と思ったら、こちらの記事をご覧ください。

なぜモデルが必要なのか?

ただそもそも論として、なぜモデルが必要なのか?

Laravelの仕組みやプログラミングを理解するうえで大事なので、少しくわしく解説しますね。

モデルがなければ、データベースを直接処理しなければいけません。

これは非常に効率が悪い上、データベースと連携がうまくできなければ、トラブルが発生します。

そのため、プログラムとデータベースを対応づけて開発を進めるORMという手法ができました。

ORMとは、Object Relatonal Mappingの略で、日本語にするとオブジェクト関係マッピングです。

このORMを実施するツールや機能のことをORマッパーといいます。

モデルは、このORマッパーを使って、データベースと連携している部分になります。

なおORマッパーには色々なものがありますが、LaravelはEloquent(エロクエント)というORマッパーを使っています。

Eloquentは学びやすいこと、分かりやすいこと、学習のしやすさに定評があります。

英語の豆知識Eloquentは【雄弁な】【弁がたつ】という意味があります。

データベースと上手にコミュニケーションをはかってくれる、ということで、こんな名前なのですね。

モデルとマイグレーションの違い

なお前回解説したマイグレーションとの違いが分かりにくいかもしれないので、役割をはっきりさせておきます。

モデルファイルは、データベース上の各テーブルの関係について設定します。

一方マイグレーションファイルは、データベース上の各テーブルの作成・更新の設計図

マイグレートを行うと、実際にテーブルを作成・更新します。

モデル 各テーブル間の関係を設定する。
マイグレーション テーブルの作成や更新を設計する。

モデルを作成してみる

モデルについて解説をしましたが、ここからは実際にモデルを作ってみましょう。

①モデルファイル作成のコマンドを入力する

Laravelをインストールしたフォルダに移動し、次のようにコマンドラインに入力します。

最後に【-m】とつけましたが、こうすると、モデルファイルとマイグレーションファイルを同時に作れます。

モデルファイルを作れば、マイグレーションファイルも必要ににあるので、通常は、このようにマイグレーションファイルを一緒に作ります。

なおモデル名は、次の2つのルールを覚えておきましょう。

  • 単数形にする
  • 最初は大文字にする

なお前回すでにPostファイルを作成いただいた場合には、マイグレーションファイルは不要です。-mは付けずに、モデルファイルのみ作成してください。

次項の②と③は飛ばし、④へ進んでくださいね。

②モデルファイルとマイグレーションファイルを確認する編集する

出来上がったモデルファイルは、appフォルダの直下に出来上がります。

マイグレーションファイルは、database/migrationsの中に出来上がります。

③マイグレーションファイルを使ってPostテーブルを作る

マイグレーションファイルを編集します。

まずはテーブルにいれる列(カラム)を入力していきましょう。

18行目あたりに、下記の2行を加えてください。

編集後のマイグレーションファイルはこちら。

④MySQLにデータを挿入する

phpMyAdminにログインし、Postテーブルができていることを確認してください。

「挿入」ボタンを押します。

下記のように項目を追加しておきます。

⑤ルートファイルとモデルファイルを連携させる

最初にルートファイルに、モデルファイルと連携させるコードを書いておきましょう。

ルートファイルは、routesフォルダの下のweb.phpファイルになります。

ルートファイルの先頭に、次の1行を加えてください。

これで Postモデルについて、ルートファイル内に記述できるようになりました。

⑥ルートファイルに命令を書く

では試しに、ルートファイルに次のようにコードを書いてみます。

コードの意味は次のとおりです。

  • testというページに関する命令です。
  • データベース内のPostテーブルのデータをすべて取得して。
  • そのなかでtitleというカラムの中身を表示して。

保存し、ララベルのサーバーを立ち上げてください。

URLの最後に【/test】を加えてページを表示を確認してみましょう。

無事、Postテーブルの中のtitleカラムの中身が表示されていれば、成功です。

まとめ

今回のまとめ

  • Laravelのモデルはデータベースとの連携を行う役割がある
  • LaravelのモデルはEloquent ORMを採用し、学びやすい仕組みになっている
  • 前回学んだマイグレーションファイルはテーブルの中身を設計する役割がある
  • モデルをつくるときはマイグレーションファイルも一緒に作ることが多い。
  • モデル名は単数形で最初は大文字にする

今回はモデルを実際に作ってみました。

ですが、モデルの機能はまだほとんど使い切れていません。

次回以降は、色々なテーブルを作り、モデルでテーブル間の関係を設定してみましょう。

モデルって、「こんなに複雑なテーブル連携も、簡単にできちゃうんだ!」と、きっとびっくりしてしまいますよ!

コメント

タイトルとURLをコピーしました