Laravelでデータベースからデータを取得して表示する方法




Laravelはデータベースからデータを取得してWebページに表示することはすごく簡単ですが、慣れていないとわかり図来ところがあるのではないかと思います。
この記事では、Laravelを使ってデータベースからデータを取得し、表示する基本的な流れをまとめたいと思います。

Laravelのデータベース設定を確認

データベースを利用するためにはデータベース設定が必要です。
.envファイルに接続設定が必要なので、設定されているか確認してください。
以下の設定箇所を確認し、必要な設定を行ってください。

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=root
DB_PASSWORD=

Eloquent ORMとクエリビルダについて

Eloquent ORM

Eloquent ORMは、Laravelで提供されているデータベース操作のためのツールです。
ORMとは「Object-Relational Mapping」の略で、データベースのテーブルをプログラムの中でオブジェクトとして扱うことができます。
Eloquent ORMを使うと、データベースに保存されている情報を、複雑なSQLクエリを書かずに簡単に操作できます。

クエリビルダ

クエリビルダは、Laravelに含まれている機能で、データベースからデータを取得したり操作したりするためのコードを簡単に書けるようにするツールです。
クエリビルダを使うと、SQLを書かずにPHPのコードでデータベースの操作ができ、簡単で読みやすいコードで実行できます。

Eloquent ORMとクエリビルダの使い方

データベースのテーブルからデータを取得する場合、Laravelで用意したモデルを利用して取得します。

use App\Models\User;
$users = User::all();

上記のコードはusersテーブルからすべてのデータを取得します。

データベースから1件データを取得する方法

プライマリーキーを指定してデータを取得する場合、以下のコードで取得することができます。

$user = User::find(1);

条件を指定してデータを取得する方方

SQLでwhere句を指定する場合は以下のコードで取得することができます。
以下はageカラムが25よりも大きいレコードを取得します。

$users = User::where('age', '>', 25)->get();

データを取得した後ビューにデータを渡すサンプル

以下は、コントローラーで表示データを取得し、ビューにデータを渡すサンプルとなります。

public function show()
{
$users = User::all();
return view('users.index', compact('users'));
}

ビューに渡された後の表示テンプレートは以下となります。
以下はテンプレートの一部でコントローラーから渡されたデータを出力する箇所のサンプルです。

@foreach ($users as $user)
{{ $user->name }}
@endforeach

取得したデータの並べ替え

取得したデータを並べ替えする場合、以下のようにorderByメソッドを利用します。

$users = User::orderBy('name')->get();

条件を指定してデータを取得する場合、getメソッドを使います。

それ以外でよく利用するデータベースのデータを取得する機能について

上記以外でよく利用するデータベースのデータを取得する機能は、リレーション、ページネーションなどいろいろありますが、別途ご紹介します。

まとめ

Laravelでデータベースからのデータ取得を学ぶことは、Webアプリケーション開発を学ぶ上で非常に重要です。
ただ、初心者の方にとって、Eloquent ORMやクエリビルダを使うことは少しわかりずらいところがあると思います。
慣れるとものすごい便利なので是非簡単なことから覚えて活用できるようになってもらえるとうれしいです。
というわけで今回はデータベースからデータを取得し、画面に表示するまでの簡単な流れについて紹介しました。