ウェブログラム

実践しながらじっくり学ぶ、Webプログラム習得サイトです。自作サービスの公開までWeb開発を実践していきましょう!

Webrogram

自分のオリジナルサービスを作って運営しよう!

【Laravel5.6】Eloquent 入門

Eloquentについて入門していきましょう。

Eloquentモデルは色々な場面で多用しますので、ぜひ覚えて置きたい技術です。 今回は初回のため簡単な触りだけ説明してみます。

Eloquentとは

Eloquentというのは、データベース上のデータをプログラムで簡単に扱えるような仕組みのことです。

これらの仕組みを総称してORM(ORマッパー)と呼んだりします。

ユーザテーブルがあったとして、プログラム上ではUserというモデルを作成し、そこからデータを引っ張ってきたり、保存したりします。 このユーザモデルというのがEloquentにあたります。

利用してみる

実際にコードをみて、どういうものなのかということを理解していきましょう。

例としてユーザモデルを利用します。 ユーザテーブルがDB上にあって、それをEloquentとして扱う場合は、Userモデルを作成します。これはクラスですが、LaravelではデフォルトでUserモデルのクラスがありますので、そのまま利用できると思います。

データを全件取得する

ユーザテーブルの全てのデータを取得するには以下のように記述します。

User::all();

これで全件取得できたことになります。 例えば、これをSQLで書いた場合は

select * from users;

となり、かなり記述は省略されるのが分かります。

検索をかける

ユーザテーブル内のデータで特定のデータのみ取得したい場合は以下のように記述します。

User::where('name', 'takeshi');

このようにすることで、nameカラムがtakeshiのデータのみ取得できます。 これをSQLで記述すると

select * from where name = "takeshi";

と同じ意味になります。

データを取得し検索をかける

Eloquentを使用すると、一度取得したデータから更に検索をかけたりすることが出来ます。 これはかなり便利なので、この機会に是非覚えて見て下さい。

// 名前がtakeshiのユーザを取得
$user = User::where('name', 'takeshi');

// 取得したユーザから更に、メールがtakeshi@gmail.comのユーザのみ取得
$user->where('email', 'takeshi@gmail.com');

こういう風に一度変数に入れたデータから、さらに検索をかけたりすることも可能です。 実は上の書き方は以下のようにまとめて書くことも出来ます(メソッドチェーンでつなぐ感じですね)。

$user = User::where('name', 'takeshi')->where('email', 'takeshi@gmail.com');

まとめて書くと良い場合や、分けて書くと良い場合、様々な場合に柔軟に対応できます。

まとめ

今回、簡単な触りのみ紹介しました また後日実際のデータを作成して、結果を見ながら高度なEloquentの使い方を学んで行きましょう。