MVC

モデルについて

データベースを利用するためには、それなりの準備が必要です。ここではSQLiteデータベースを利用するための準備を整え、Laravelから利用するための設定などを行い、いつでもデータベースが使える状態にしましょう。

モデルとデータベース

MVC(Model-VIew-COntroller)の中でも、特に使いこなしが難しいのが「モデル(Model)」でしょう。モデルはデータの管理を行うところ、わかりやすく言えば「データベースの処理」を担当する箇所です。

データベースの利用というのは、様々なアプローチがあります。また利用にもアプリケーションによって千差万別です。

Laravelのアプローチ

Laravelでは、データベース処理のためにいくつかの機能を用意しています。以下に簡単に整理しておきましょう。

DBクラス(クエリビルダ)

最もシンプルなアプローチは「DB」クラスを利用する方法です。これはデータベースアクセスのための基本的な機能をまとめたクラスで、ここにあるメソッドを呼び出すことでアクセスできます。

このDBクラスではデータベースにアクセスするためのクエリを生成し、返信することができます。SQLを直接実行するのに近い感じですので、DBクラスを利用することで各段にデータベース利用が楽になった、というほどのインパクトはないかもしれませんが、手前にデータベースを利用するには最適な方法です。

また、「クエリビルダ」と呼ばれる機能が用意されており、これ利用するとメソッドを使ってデータベースにアクセスすることができます。SQLよりもPHPらしい処理ができるでしょう。

Eloquent(ORM)

これはORM(Object-Relation Mapping)と呼ばれる機能をLaravelに実装したものです。データベースのデータをシームレスに言語のオブジェクトに変換し、操作できるようにします。

Laravelに搭載されているEloquentというORMを使うと、DBクラスなどよりはるかにPHPのオブジェクトらしいアプローチでデータベースを利用できます。

モデルの作成方法

Laravelのモデルはarisanコマンドで簡単に作成することができます。

モデルの生成先を指定したい場合はモデル名の前にパスを指定します。

モデルを使う

それでは実際にモデルを使ってみましょう。

データを用意して、モデルを作成し、コントローラでモデルを呼び出して用意したデータを出力することができるのか確認します。

まずはmigrationファイルを用意します。

 

作成されたmigrationファイルを以下のように編集します。

続いて、初期データを用意するためにシーダーを作成します。

そして作成されたシーダーファイルを次のように編集します。

作成したシーダーを実行できるように下記のファイルを編集します。

マイグレーションとシーダーの用意ができましたので、マイグレーションとシーダーを実行してみましょう。

 

これからLaravelを始めるならこれが最適!!


今までLaravelに関しての良書はほとんどなく、あっても内容が古かったり分かりにくいのばかりで、先駆者達は苦労したのではないでしょうか?

そんな中で発売されたこの本は、現在の日本国内にて唯一のLaravelの良書と言い切っても良いかと思います。PHP中級者以上なら苦労することなく読めるでしょう。Laravelは高機能ゆえ、全機能を説明してはいませんが、この本をとっかかりにすれば自ずとLaravelをマスターすることができると思います。