広告 PHP-Laravel- プログラミング

【Laravel入門】Model(モデル)の解説

今回は、Model(モデル)の作成と設定について解説していきます。

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

Laravelについてよくわからないや。。。という方は、以下を併せて読んでいただけるとご理解いただけると思います。

モデルとは

モデルは、データベースとの連携を担当し、得られた結果をコントローラーに返すのが主な役割になります。

なぜモデルが必要となるのか?
Laravelの仕組みやプログラミングを理解する上で大切な事項となりますので、少し解説いたします。

モデルがないと、データベースを直接処理しなければいけなくなります。
効率が良くない上に、データベースと連携がうまくできなければ、トラブルが発生します。
そのため、プログラムとデータベースを対応付けて開発を進めるORM」という手法ができました。

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

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

ORマッパーには色々なものがありますが、LaravelはEloquent(エロクエント)というORマッパーを使っています。
Eloquentは学びやすいこと、分かりやすいこと、学習のしやすさに定評があります。

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

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

マイグレーションファイルは、データベース上の各テーブルの作成・更新の設計図です。実際にテーブルを作成・更新を行います。

モデルを作成

1)モデルファイル作成のコマンドを入力します。

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

php artisan make:model Sample -m

※例では、モデル Sampleテーブルを作成します。
※最後のオプション【-m】は、モデルファイルとマイグレーションファイルを同時に作れることができます。

モデル名の付け方には、以下のようなルールがあります。

  • 単数形とします。
  • 最初は大文字とします。

2)モデルファイルとマイグレーションファイルを確認 ⇒ 編集します。

モデルファイルは、app/Models」フォルダの中にできます。(マイグレーションファイルは、database \ migrations フォルダ内です)

マイグレーションファイル名 ⇒ 20xx_xx_xx_xxxxxx_create_samples_table.php

3)マイグレーションファイルを使用して、Sampleテーブルを作成します。

マイグレーションファイル up 関数には、
$table->id ();
$table->timestamps (); があるので、ここに例として、以下を追加します。

$table -> string( 'title' );
$table -> text ('body');
※ カラム名1 title (データ型 varchar(255))
※ カラム名2 body (データ型 text) を Sampleテーブルにカラム追加します。

マイグレーションファイルを編集後、以下コマンドを実行します。

php artisan migrate

データベースにsamplesテーブルが作成、反映されます。

4)ルートファイルとモデルファイルを連携させます。

ルートファイル(routes / web.php ) に、モデルファイルと連携させるコードを書きます。

ルートファイルの先頭に以下の1行を付け加えます。

use App\Models\Sample ;

これで、ルートファイル内にSampleテーブルについて記述することができるようになります。

例)
Route :: get('/test', function () {
$posts = Sample :: all ();
foreach ( $posts as $ post ) {
return $post -> title ;
}
}

上記例のコードの意味
/test ページに関する命令で、データベース内のSampleテーブルのデータを全部取得 → title というカラムの内容を表示してください。

ということになります。

基本的には、ルート設定⇒コントローラーへの処理の流れで、ブラウザに表示をさせますが、零では、処理を簡略化しました。

まとめ

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

今回はモデルについて説明しました。Laravelの学習されている方のお力になれると幸いです。

おすすめ学習書

-PHP-Laravel-, プログラミング