調剤薬局オーナー様へ 【現在就業可能日】火曜、木曜、土曜、日曜 時給3,300円~相談可能 お気軽にお問い合わせください。

Laravel初心者まとめ記事⑥〔モデル〕

「Laravel」について学習を始めたプログラミング初心者である私が、

ゆっくりではありますが、その学習記録をブログ記事として残させて頂いております。

同じような境遇の方の参考になったり、また「Laravel」を含めたプログラミング言語を学ぶきっかけになったりすれば良いなと思っております。

(ローカル環境は開発済みとする。テキストエディタはVSCodeを用いる)

前置きが長くなりましたが、それでは下記からの本文をどうぞ!

目次

モデルの解説

LalavelはMVCモデルに基づいており、ここまでコントローラー、ビューについてまとめ(+ルーティング)、それぞれを繋いできました。

最後に「M」に該当するモデルについて学びたいと思います。

モデル:Model ▶ データベースとのやり取り

を扱う部分になりまして、データベースから内容を取得し、コントローラーを介してビューファイルに表示させる事も出来ます。

通例、例えばデータベースに何かを格納したり、取り出したり、または検索したり、削除したりする操作は〔SQL〕と言う言語を用いて行いますが、

Laravelにおけるモデルファイルでは、代わりにPHP言語を用いて代用することが出来ます。

このようにSQLを用いずに他の言語(PHPなど)でデータベースとやり取りをする仕組みを、

ORM(Object-Relational Mapping)またはORマッパーと呼びます。

直訳するとオブジェクト関係マッピングとなり、Laravel(PHP)においてのORMを特別に〔Eloquent(エロクアント)〕と呼びます。

〔Eloquent(エロクアント)〕については、次々回位で別途記事にするかもしれません。

なお、ORMに関してはPHPだけでなく、JAVAやRubyなどの他プログラミング言語にも実装されております。

モデルをコマンドで作成してみる

ビューは自分でblade.phpファイルなどを作成する必要がありましたが、

モデルもコントローラーと同じように簡単なコマンドでひな形を作成することが出来、

作成されたモデルのひな形には既に様々な機能が搭載されております。

コマンドもほぼほぼコントローラーと同じコードになります。

php artisan make:model Test

:model に続くのがモデル名(任意)になります。

今回は「Test」としており、通例は大文字から始めるようです。

実際にターミナルでコマンドを打った後の画像です

app,Modelsフォルダの中に「Test.php」が新規で作成され、

その「Test.php」には事前にコードが入力されています。

モデル作成時の追加オプション

php artisan make:model Test -mc

と言うように、先ほどのコマンドに「-mc」を追記した書き方をすることも可能です。

ここでの「m」は次の記事で出てくるマイグレーション、「c」はコントローラーを意味しており、

それぞれのファイルも一緒に作成することが出来るオプションになります。

モデルファイルの中身

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Test extends Model
{
    use HasFactory;
}

上記がデフォルトの記述になりますが、各コードについてはコントローラーのデフォルトと同じような意味です。

namespaceは名前空間で、このクラスがどこにあるのかを示しており、

5,6行目はそれぞれ〔use宣言〕になります。

そして8行目の class Test extends Model はクラスの継承になりますので、

作成したTest.phpはModelと言う親クラスの機能を引き継ぐことが出来ます。

コントローラーと同じように事前にuse宣言したり、クラスを引き継いだりすることで、様々な機能が実装済みとなっているので、

データベースとのやり取りがだいぶ楽になるという事ですね。

まとめ

MVCモデルにおける、モデルをまとめてみました。

これで、MVCのすべての頭文字の解説を終えたことになりましたが、

もう1つ〔ルーティング〕と同じように、〔マイグレーション〕と言う概念があります。

次回はこの〔マイグレーション〕についてまとめていく予定です。

何卒宜しくお願い致します!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次