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

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つのルールを覚えておきましょう。

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

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

出来上がったモデルファイルは、app/Modelsの中にできます。

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

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

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

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

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

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

マイグレーションファイルを保存後、php artisan migrateを実行します。これによって、データベースにpostsテーブルが反映されます。

 

*なお、データベースは既に作成済みとして、説明を続けていきます。もしまだデータベースがない場合は、下記記事内の【データベースと接続】を参考に、データベースを作成・接続させた後に、マイグレートを実行しましょう。

④MySQLにデータを挿入する

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

テーブルを確認できたら、「挿入」ボタンを押します。

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

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

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

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

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

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

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

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

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

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

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

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

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

なお本来はルート設定→コントローラーの流れで、ブラウザに画面を表示させますが、モデルの説明用に、処理を簡略化しました。

まとめ

今回のまとめ

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

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

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

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

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

なお「実際にプロジェクトでモデルを使ってみたい」「実践的な内容でLaravelを学びたい」と思ったら、学習サイト【Laravelの教科書】を活用してくださいね。

詳細は、下記ボタンをクリックした先のご案内ページをご覧ください。

Laravelの教科書について詳しく知る

Junko
Junko

Laravelを学びつつ、フォーラムサイトを作成していく学習サイトです。

基礎編部分は無料です。

Laravel入門講座

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

Laravel8版と、最新のLaravel9版、ふたつのテキストご用意してます♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

Laravel8版と、最新のLaravel9版、ふたつのテキストご用意してます♪

社内にWebアプリ開発経験がなくて、困ってませんか?

「自社でWebアプリ開発を始めていきたい」
という企業様のために、Laravelセミナー・プログラミング教育を実施しています。

【セミナー使用スライド】

詳細はこちらご覧ください

Twitter始めました。
40代からプログラミング!

コメント

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