今回は、Laravelの「モデル」とは何か、分かりやすく説明します。
一言でいうと、モデルはLaravelとデータベースをつないでくれるもの。
ただこれだけでは、イマイチよく分からないですよね。
Laravelのモデルの役割と作り方をとことん分かりやすく解説していきます!
Laravelのモデルを分かりやすく解説【Laravel超入門講座】
たとえば、Laravelに「お問い合わせ」機能を付けるには、情報を入れるためのデータベースが必要になります。
Laravelの中にデータベースを入れてしまうと、管理が大変。
そこで、データベースは外部のデータベース管理システムに入れておくようにします。
ただこうすると、システム本体とデータベースをつなぐものが必要になってくる。
Laravelでは、「モデル」がこの役割を果たします。
モデルは、言ってみればLaravelとデータベースの仲介人といえます。
なおモデルは、フォームや機能ごとに作成します。
お問い合わせフォームから投稿された情報をいれるには、【inquiry】モデルを作ります。
もちろん、Inquiryという名前でなくても大丈夫!
モデルの名前は、自分で好きに設定できます。
モデルはクラスの一種
ここで少し補足。
モデルは、クラスの仕組みを使っており、クラスの一種ともいえます。
前回クラスについて解説しましたが、クラスとは、設計図のこと。
最初に設計図を作り、これに従って、実際のデータが作成されます。
今回の例でいえば、最初に【inquiry】モデルに設計図を入れ、これに従って、実際の「inquiry」(お問い合わせ)をひとつずつ作っていきます。
このあたり、ちょっとわかりにくいですよね。
前回の記事で「クラス」について分かりやすく解説しているので、良かったら、こちらもセットでお読みください。
実際のモデルの作り方
以上がモデルの概念の説明です。
ここからは例を使って、実際の作り方をお伝えしていきますね。
たとえば、こんなお問い合わせフォームを設置するとします。
まずは、どんな項目を入れるか考えてみましょう。
お問い合わせフォームを通じて、ユーザーが、下記3つの情報を入力できるようにします。
- 件名:title
- 本文:body
- メールアドレス: email
モデル作成手順① モデルファイル作成
このようなモデルを作るには、まず、Laravelに次のコマンドを入れます。
1 |
php artisan make:model Inquiry -m |
すると、app/Models内にInquiry.phpファイルが作成されます。
これが、Inquiryモデルの設定ファイル。
モデル作成手順② マイグレーションファイル設定
さらに、database内に、【本日の日付_create_inquiries_table.php】ファイルができています。
これは、Inquiryモデルの項目を設定するファイル。
次のように、inquiryモデル必要な項目を入れておきます。
idやcreated_at(作成日)、updated_at(更新日)といった項目は、通常、フォームに入れません。自動で入力されていきます。
モデル作成手順③ データ移行実行
このあと、データベースに情報を移行するために、マイグレートと言う命令を実行します。
1 |
php artisan migrate |
これで完了。
データベースを見てみると、inquiriesテーブルが作成されているはず。
このあとは、【コントローラー】にデータベースにデータを入れる処理を書いていきます。
また、HTMLを使ってinquiryフォームも作ります。
このあたりの処理は、今回は割愛しますね。
また別の記事で書いていこうと思います。
モデルはLaravelとデータベースの連携係
モデルについてまとめると、押さえておいてもらいたい点は、下記のとおり。
- モデルはシステムとデータベースを結ぶ役割を果たす
- 各モデル内の項目は、マイグレーションファイルで設定
- マイグレートを実行して、データベースに情報を伝達する
なお、新しくアプリを作る時は、最初にしっかりと必要なモデルと項目を考えておくことが大事。
あとから「やっぱりモデルを追加しよう」「項目を変えよう」というのも可能ですが、結構メンドウです(←経験談><)
モデルについて、何となくお分かりいただけたでしょうか?
引き続き、Laravelの基本を解説していきますね。