Laravelにはデーターベース処理のために大きく分けて2つの機能が用意されています。
データベースの作成からの続き
DBクラス:クエリビルダ
クエリビルダ(Query Builder)は、簡単にデーターベースを使いたい時などに便利です。
MVCのM(Model)をわざわざ使わなくても、数種類のデータの出し入れで済むなら、
C(Controller)やV(View)にそのコードを記述する方が、解りやすいと思える場合に使います。
オブジェクト指向のメソッドチェーンを使用してデータベースクエリを構築して使います。
戻り値は、PHPフレームワークでよく出てくる、Collectionという型で、Array(配列)
をラップした、機能拡張の型です。
Eloquent:ORM(Object-Relational Mapping)
幾つかのデーターベースの関係性を利用して、データを加工したりするなどの複雑な操作
をする場合など、コードの記述が長くなる。こういう場合などModel(M)にまとめて
記述し、その書き方をある程度の決まり事としてまとめたのがEloquentです。
なので、そのルールに従い、ファイルの名前の記述方法やディレクトリへの配置指定に従えば、少量の
コードの記述でデータベースの操作を行えます。コードを減らす=抽象化というモダンさを意識して
いるので、記述方法のルールを覚える事を要望されますが・・・。戻り値はモデルオブジェクトで、
データをデーターベースのSchemaで使われる名前と同名のプロパティで扱え、SQL文を作成する
必要が無くなります。
通常のデーターベースのテーブルの作成は、カラム名と型を設定しますが、
カラム名はオブジェクトのプロパティと同名で、型はEloquentが変換するので、
データーベースの設定を気にせずプログラミングに専念できます。
ORMとは、データベースとオブジェクト指向をつなぐプログラミング技法です。
モダンをうたっているLaravelなので、当然のごとく取り入れています。ただし、Lravelに取り込む
にあたり、名前をEloquentとしているだけです。
データーベースの操作をより簡単にして、多くの人に活用してもらう事が目的なので、
短いコードを実現するルールをいろいろと決めています。
結論
DBクラス
・SQL構文に慣れていて、色々と自分の考えで、データベース処理を実現したい。
・SQL構文に不慣れで、できれば簡単にデータベース処理を行いたい。
初心者かある程度の経験者を対象とし、Laravelの場合は概ね
個人で簡単なアプリケーションを作り、データーベースの使用も少量のデータの出し入れである場合
Eloquent
・SQL構文を書きたくない!
とにかくPHPでのプログラム構文で、データベースを処理を行いたい場合