Laravelのeloquentをザックリ理解する

Laravel
Laravelのeloquentって何だろう?という疑問にザックリお答えします。PHP・プログラミング初心者のときこそ、細かいことを理解して覚えようとするよりも、ザックリとした理解が大切です。

Laravelのeloquentって何だろう?という疑問にザックリお答えします。PHP・プログラミング初心者のときこそ、細かいことを理解して覚えようとするよりも、まずはザックリとした理解が大切だと実感しました。

この記事では、eloquentについてザックリ分かりますので、プログラミング初心者の方やLaravelを勉強し始めたばかりの方にオススメです。

eloquentとは

eloquentとは

eloquentって何?という感じで、そもそも単語の意味からして簡単には思い浮かばず、難しげですね。英語としても、難しいレベルの単語です。

eloquentとは、英語の形容詞で、雄弁な、よく表しているなどといった意味がありますが、ぶっちゃけ意味を調べてもあまりピンときません。

なのでボクなりの解釈ですが、eloquentは、これまでになかったすごくて便利な仕組みだよというニュアンスの、強調の意味で付けられているんじゃないかなと思っています。

それでは、Laravelのeloquentについてみていきましょう。

eloquentモデルとは

Laravelは、PHPの他のフレームワークと同じく使われるMVCと呼ばれる仕組みに分かれています。MVCとは、コントローラー、ビュー、モデルの頭文字です。

データベースに関係するモデルの機能を、SQLをあまり意識しなくてラクに操作できる仕組みをeloquentといいます。

通常は、データベースを扱うには、Laravelとは別に、SQLの言語であるMySQLやsqliteなどを覚えておかないと扱えませんので、こういったSQLを使いこなすことが必要ですが、

Laravelに用意されているeloquentを使えば、SQLでデータベースの操作を書かなくても、データベースの操作ができるようになっているのです。

Laravelに用意されているこの仕組みが、eloquentモデルです。

eloquentでできること

SQLであるMySQLやsqliteを使ってテーブルにデータの項目を作ったり、データを追加したり、削除したりといった操作と同じことが、eloquentでできます。

なので、eloquetでテーブルにデータを追加したあとで、sqliteでテーブルのデータを表示すると、eloquentで追加したデータがちゃんと表示されます。

それでは、具体的な使い方をみてみましょう。

ターミナルのコマンドでphp artisan tinkerを立ち上げると、ターミナルからインタラクティブな操作でデータベースを操作できます。

ターミナルのコマンドでphp artisan tinkerを立ち上げると、ターミナルからインタラクティブな操作でデータベースを操作できます。

画像のように、「 >>> 」の部分がtinkerのプロンプトで、ここにいろんな操作を書いていきます。

例えば、データベースの中身をみたいときは、tinkerでこんな感じのコマンドを入力すると、SQLを書かなくても、中身が見れます。

例えば、データベースの中身をみたいときは、こんな感じのコマンドを入力すると、SQLを書かなくても、中身が見れます。

今度は、いま表示した中身をsqliteを立ち上げてデータベースの中身を見てみると、tinkerでみたのと同じ内容であることが確認できます。

今度は、いま表示した中身をsqliteを立ち上げてデータベースの中身を見てみると、tinkerでみたのと同じ内容であることが確認できます。

こんな感じで、eloquentを使えば、SQLを意識せずに操作できるのが分かります。とはいっても、eloquentで必要な基本的なメソッドなどは覚える必要があります。また、大量のデータや項目を扱うときには向いてなく、ちょこっと扱うときに適している仕組みです。

まとめ

  • eloquent、またはeloquentモデルとは、Laravelに用意されている、SQLを意識することなくデータベースを扱える仕組み
  • eloquentでは、tinkerを使ってインタラクティブな操作で、データベースのデータの追加や削除や表示など、SQLを使った操作と同じことができる
  • eloquentは大量の項目を追加するといった量が多い操作だと煩雑で大変なので、ちょこっとした操作のときに向いている、適している

以上、Laravelには他にもいろんな仕組みがありますので、仕組み単位で、これはどんなことをするのだろう?と大きくとらえ、ザックリ理解することが理解につながるので大切だと経験から思いました。

逆に言うと、細かなことばかりに目が行って覚えようと頑張ってしまうと、そもそも何のためなのかが分からなくなり、ボクは頭が混乱しました。

大きく役割や機能を理解→細かなことをみていく

視点を持つことがコツです。あー。細かなことに囚われているな。と思ったら、俯瞰した視点で、そもそもこれは何のためにあるんだろう、どんな役割があるんだろう、とメタ認知的な視点を持って、Laravelの学習を頑張っていきましょう!

コメント

タイトルとURLをコピーしました