

などの疑問や悩みを解決してまいります。
本記事の目次
事前準備(スキップ可)
データベースからデータを取得するため、以下の準備を行います。
事前準備
- productsテーブルの用意
- データベース操作のためModelファイルの作成
- データベースの操作内容を記述するためControllerファイルの作成・編集
- 表示するためのbladeファイルの作成・編集

データベースの準備
データを取得するためのproductsテーブルとデータを用意します。
データベースにproductsテーブルの作成、データを登録する方法は以下の記事を参考にしてください。
参考
本記事の解説では、以下のproductsテーブルを使用して解説していきます。
productsテーブルを確認する
| id | name | description | price | stock | created_at | updated_at | 
|---|---|---|---|---|---|---|
| 1 | パキラ | 太い幹と大きな葉が特徴の観葉植物で、育てやすくインテリアにも最適です。 | 1500 | 10 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 2 | モンステラ | 大きな切れ目の入った葉が美しい植物で、湿度の高い環境を好みます。 | 2500 | 5 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 3 | サンスベリア | 厚みのある細長い葉が特徴で、空気清浄効果が期待できる植物です。 | 3000 | 2 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 4 | フィカス・ベンジャミナ | 葉の茂りが良く、明るい場所で元気に育つ観葉植物です。 | 1200 | 20 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 5 | ドラセナ・マッサンゲアナ | 幹の節から細長い葉が生え、育てやすいので初心者にもおすすめです。 | 1800 | 15 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 6 | アグラオネマ | 鮮やかな葉色が特徴で、耐陰性もあり室内でも育てやすい植物です。 | 4500 | 8 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 7 | カラテア | 葉に美しい模様があり、観賞用に人気の高い植物です。 | 2200 | 12 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 8 | スパティフィラム | 白い花が咲くことがあり、空気をきれいにしてくれる効果もあります。 | 1600 | 18 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 9 | シュフレラ | 葉が放射状に広がり、明るいグリーンが部屋のアクセントになります。 | 800 | 30 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 10 | ポトス | つる性で、耐陰性が強く室内での育成が容易な植物です。 | 2900 | 0 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 11 | フィロデンドロン | 大きな葉を持ち、湿度が高い環境を好む観葉植物です。 | 3500 | 6 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 12 | ゼラニウム | 可愛らしい花が特徴の植物で、屋内外で育てられます。 | 900 | 9 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 13 | クワズイモ | 丸みのある大きな葉が特徴で、熱帯雨林のような雰囲気を楽しめます。 | 1200 | 25 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 14 | シェフレラ・アルボリコラ | 葉が傘のような形をしており、耐陰性が強い観葉植物です。 | 450 | 35 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 15 | エバーフレッシュ | 細かい葉が特徴で、夜になると葉を閉じる特性があります。 | 3200 | 3 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 16 | アンスリウム | 赤やピンクの鮮やかな花が咲き、長期間花を楽しめる植物です。 | 2700 | 7 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 17 | ポリシャス | 緑の濃い葉と独特の形状が人気の観葉植物です。 | 1100 | 22 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 18 | ゴムの木 | 太い幹と大きな葉が特徴で、耐寒性があり丈夫な植物です。 | 1900 | 14 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 19 | ベゴニア・レックス | 鮮やかな葉の模様が観賞用に人気で、多湿環境を好みます。 | 3600 | 11 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 20 | ペペロミア | 小ぶりで丸い葉が特徴の植物で、乾燥にも強く育てやすいです。 | 1300 | 16 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
Modelの作成
データベース操作を行うためのProductモデルを作成します。
php artisan make:model Productコマンドを実行したら、Product.phpがapp/Models配下に作成されているか確認してください。

Controllerの作成
次にデータベースからデータを取得するため、Controllerファイルを作成します。
php artisan make:controller ProductControllerコマンドを実行したら、ProductController.phpがapp/Http/Controllers配下に作成されているか確認してください。
Controllerの編集
作成したProductController.phpを編集します。
<?php
namespace App\Http\Controllers;
use App\Models\Product; // 追加
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Schema;
class ProductController extends Controller
{
    public function index()
    {
        // カラム名を取得
        $columns = Schema::getColumnListing('products');
        // ここに取得するデータを記述する
        $products = [];
        // compact()メソッドで$columnsと$productsデータをproductに渡す
        return view('product', compact('columns', 'products'));
    }
}まずデータベース操作を行うため、use文で作成したProductモデルをインポートします。
次にindex()内に、Schema::getColumnListing('products')を記述し、productsテーブルのカラムを取得しています。
$productsには取得したデータを入れるための変数を準備しています。

view('product', compact('columns', 'products'))では、compact()メソッドで$columnsと$productsをProductページに渡しています。
productページで受け取ったこの2つの変数を使って、ページ内に表示できるように処理を記述していきます。
bladeファイルの作成
表示するためのページを作成するため、resources/views配下にbladeファイルを作成します。

bladeファイルの編集
作成したproduct.blade.phpは以下のように記述して、受け取った値を表示できるようにします。
スタイルの指定
本記事のbladeファイルは、Tailwind.cssを使用してスタイルを整えた記述になっていますが、スタイルの指定は特にないのでここはお好みで問題ありません。
<div class="relative overflow-x-auto shadow-md sm:rounded-lg">
    <table class="w-full text-sm text-left rtl:text-right text-gray-500 dark:text-gray-400">
        <thead class="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400">
            <tr>
                @foreach ($columns as $column)
                <th scope="col" class="px-6 py-2">{{ $column }}</th>
                @endforeach
            </tr>
        </thead>
        <tbody>
            @foreach ($products as $product)
            <tr class="odd:bg-white odd:dark:bg-gray-900 even:bg-gray-50 even:dark:bg-gray-800 border-b dark:border-gray-700">
                <td class="px-6 py-2">{{ $product->id }}</td>
                <td class="px-6 py-2">{{ $product->name }}</td>
                <td class="px-6 py-2">{{ $product->description }}</td>
                <td class="px-6 py-2">{{ $product->price }}</td>
                <td class="px-6 py-2">{{ $product->stock }}</td>
                <td class="px-6 py-2">{{ $product->created_at }}</td>
                <td class="px-6 py-2">{{ $product->updated_at }}</td>
            </tr>
            @endforeach
        </tbody>
    </table>
</div>どちらの変数も配列データのため、foreach文を使って配列内のデータを1つずつ取り出していきます。

全てのデータを取得
全てのデータを取得する場合、all()メソッドを使用します。
 $products = Product::all();取得結果を確認する
| id | name | description | price | stock | created_at | updated_at | 
|---|---|---|---|---|---|---|
| 1 | パキラ | 太い幹と大きな葉が特徴の観葉植物で、育てやすくインテリアにも最適です。 | 1500 | 10 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 2 | モンステラ | 大きな切れ目の入った葉が美しい植物で、湿度の高い環境を好みます。 | 2500 | 5 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 3 | サンスベリア | 厚みのある細長い葉が特徴で、空気清浄効果が期待できる植物です。 | 3000 | 2 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 4 | フィカス・ベンジャミナ | 葉の茂りが良く、明るい場所で元気に育つ観葉植物です。 | 1200 | 20 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 5 | ドラセナ・マッサンゲアナ | 幹の節から細長い葉が生え、育てやすいので初心者にもおすすめです。 | 1800 | 15 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 6 | アグラオネマ | 鮮やかな葉色が特徴で、耐陰性もあり室内でも育てやすい植物です。 | 4500 | 8 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 7 | カラテア | 葉に美しい模様があり、観賞用に人気の高い植物です。 | 2200 | 12 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 8 | スパティフィラム | 白い花が咲くことがあり、空気をきれいにしてくれる効果もあります。 | 1600 | 18 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 9 | シュフレラ | 葉が放射状に広がり、明るいグリーンが部屋のアクセントになります。 | 800 | 30 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 10 | ポトス | つる性で、耐陰性が強く室内での育成が容易な植物です。 | 2900 | 0 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 11 | フィロデンドロン | 大きな葉を持ち、湿度が高い環境を好む観葉植物です。 | 3500 | 6 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 12 | ゼラニウム | 可愛らしい花が特徴の植物で、屋内外で育てられます。 | 900 | 9 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 13 | クワズイモ | 丸みのある大きな葉が特徴で、熱帯雨林のような雰囲気を楽しめます。 | 1200 | 25 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 14 | シェフレラ・アルボリコラ | 葉が傘のような形をしており、耐陰性が強い観葉植物です。 | 450 | 35 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 15 | エバーフレッシュ | 細かい葉が特徴で、夜になると葉を閉じる特性があります。 | 3200 | 3 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 16 | アンスリウム | 赤やピンクの鮮やかな花が咲き、長期間花を楽しめる植物です。 | 2700 | 7 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 17 | ポリシャス | 緑の濃い葉と独特の形状が人気の観葉植物です。 | 1100 | 22 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 18 | ゴムの木 | 太い幹と大きな葉が特徴で、耐寒性があり丈夫な植物です。 | 1900 | 14 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 19 | ベゴニア・レックス | 鮮やかな葉の模様が観賞用に人気で、多湿環境を好みます。 | 3600 | 11 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 20 | ペペロミア | 小ぶりで丸い葉が特徴の植物で、乾燥にも強く育てやすいです。 | 1300 | 16 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
このようにproductsテーブルから、すべてのデータを取得します。
指定した文字列に一致するデータを取得
指定した文字列に一致するデータを取得するには、where()とlike演算子を使用します。
$products = Product::where('name', 'like', '%フィカス%')->get();取得結果を確認する
| id | name | description | price | stock | created_at | updated_at | 
|---|---|---|---|---|---|---|
| 4 | フィカス・ベンジャミナ | 葉の茂りが良く、明るい場所で元気に育つ観葉植物です。 | 1200 | 20 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
productsテーブルからnameカラムに「フィカス」を含む商品を取得しています。
第1引数に対象となるカラム名を記述し、第2引数にlike演算子を使用するので「like」と記述します。
第3引数には、絞り込む文字をワイルドカード(%)を含め入力します。
ワイルドカードとは
ワイルドカードとは、文字列検索やパターンマッチングにおいて、任意の文字や文字列を表す特別な記号や文字のことで、%はデータベースのSQLやLaravelのEloquentでよく使われるワイルドカードです。
ポイント
- 'like', '%フィカス%': 「フィカス」という文字列が含まれているレコードを検索
- 'like', 'フィカス%': 「フィカス」で始まる文字列を検索
- 'like', '%フィカス': 「フィカス」で終わる文字列を検索
詳細については以下を参考にしてみてください。
ワイルドカード検索 (%) - SQL Server
特定のカラムを取得
productsテーブルの全カラムではなく、特定のカラムのみを取得したい場合には、select()を使います。
$products = Product::select('name', 'price')->get();取得結果を確認する
| name | price | 
|---|---|
| パキラ | 1500 | 
| モンステラ | 2500 | 
| サンスベリア | 3000 | 
| フィカス・ベンジャミナ | 1200 | 
| ドラセナ・マッサンゲアナ | 1800 | 
| アグラオネマ | 4500 | 
| カラテア | 2200 | 
| スパティフィラム | 1600 | 
| シュフレラ | 800 | 
| ポトス | 2900 | 
| フィロデンドロン | 3500 | 
| ゼラニウム | 900 | 
| クワズイモ | 1200 | 
| シェフレラ・アルボリコラ | 450 | 
| エバーフレッシュ | 3200 | 
| アンスリウム | 2700 | 
| ポリシャス | 1100 | 
| ゴムの木 | 1900 | 
| ベゴニア・レックス | 3600 | 
| ペペロミア | 1300 | 
nameカラムとpriceカラムの値だけを取得しています。
単一の条件を指定して取得
単一の条件を指定して値を取得する例をご紹介します。
例えば、stockカラムの値が10より多いの商品を取得したい場合は、以下のように記述します。
$products = Product::where('stock', '>', 10)->get();取得結果を確認する
| id | name | description | price | stock | created_at | updated_at | 
|---|---|---|---|---|---|---|
| 4 | フィカス・ベンジャミナ | 葉の茂りが良く、明るい場所で元気に育つ観葉植物です。 | 1200 | 20 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 5 | ドラセナ・マッサンゲアナ | 幹の節から細長い葉が生え、育てやすいので初心者にもおすすめです。 | 1800 | 15 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 7 | カラテア | 葉に美しい模様があり、観賞用に人気の高い植物です。 | 2200 | 12 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 8 | スパティフィラム | 白い花が咲くことがあり、空気をきれいにしてくれる効果もあります。 | 1600 | 18 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 9 | シュフレラ | 葉が放射状に広がり、明るいグリーンが部屋のアクセントになります。 | 800 | 30 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 13 | クワズイモ | 丸みのある大きな葉が特徴で、熱帯雨林のような雰囲気を楽しめます。 | 1200 | 25 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 14 | シェフレラ・アルボリコラ | 葉が傘のような形をしており、耐陰性が強い観葉植物です。 | 450 | 35 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 17 | ポリシャス | 緑の濃い葉と独特の形状が人気の観葉植物です。 | 1100 | 22 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 18 | ゴムの木 | 太い幹と大きな葉が特徴で、耐寒性があり丈夫な植物です。 | 1900 | 14 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 19 | ベゴニア・レックス | 鮮やかな葉の模様が観賞用に人気で、多湿環境を好みます。 | 3600 | 11 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 20 | ペペロミア | 小ぶりで丸い葉が特徴の植物で、乾燥にも強く育てやすいです。 | 1300 | 16 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
複数の条件を指定して取得
複数の条件を指定したい場合は、where()を複数連結して指定することができます。
例えば、priceカラムの値が1000以上かつ、stockカラムの値が5以上の商品を取得したい場合は、以下のように記述します。
$products = Product::where('price', '>=', 1000)
                   ->where('stock', '>=', 5)
                   ->get();取得結果を確認する
| id | name | description | price | stock | created_at | updated_at | 
|---|---|---|---|---|---|---|
| 1 | パキラ | 太い幹と大きな葉が特徴の観葉植物で、育てやすくインテリアにも最適です。 | 1500 | 10 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 2 | モンステラ | 大きな切れ目の入った葉が美しい植物で、湿度の高い環境を好みます。 | 2500 | 5 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 4 | フィカス・ベンジャミナ | 葉の茂りが良く、明るい場所で元気に育つ観葉植物です。 | 1200 | 20 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 5 | ドラセナ・マッサンゲアナ | 幹の節から細長い葉が生え、育てやすいので初心者にもおすすめです。 | 1800 | 15 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 6 | アグラオネマ | 鮮やかな葉色が特徴で、耐陰性もあり室内でも育てやすい植物です。 | 4500 | 8 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 7 | カラテア | 葉に美しい模様があり、観賞用に人気の高い植物です。 | 2200 | 12 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 8 | スパティフィラム | 白い花が咲くことがあり、空気をきれいにしてくれる効果もあります。 | 1600 | 18 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 11 | フィロデンドロン | 大きな葉を持ち、湿度が高い環境を好む観葉植物です。 | 3500 | 6 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 13 | クワズイモ | 丸みのある大きな葉が特徴で、熱帯雨林のような雰囲気を楽しめます。 | 1200 | 25 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 16 | アンスリウム | 赤やピンクの鮮やかな花が咲き、長期間花を楽しめる植物です。 | 2700 | 7 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 17 | ポリシャス | 緑の濃い葉と独特の形状が人気の観葉植物です。 | 1100 | 22 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 18 | ゴムの木 | 太い幹と大きな葉が特徴で、耐寒性があり丈夫な植物です。 | 1900 | 14 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 19 | ベゴニア・レックス | 鮮やかな葉の模様が観賞用に人気で、多湿環境を好みます。 | 3600 | 11 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 20 | ペペロミア | 小ぶりで丸い葉が特徴の植物で、乾燥にも強く育てやすいです。 | 1300 | 16 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
順番操作(ソート)
例えばpriceカラムの値が大きい順にソートする場合は、以下のように記述します。
$products = Product::orderBy('price', 'desc')->get();取得結果を確認する
| id | name | description | price | stock | created_at | updated_at | 
|---|---|---|---|---|---|---|
| 6 | アグラオネマ | 鮮やかな葉色が特徴で、耐陰性もあり室内でも育てやすい植物です。 | 4500 | 8 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 19 | ベゴニア・レックス | 鮮やかな葉の模様が観賞用に人気で、多湿環境を好みます。 | 3600 | 11 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 11 | フィロデンドロン | 大きな葉を持ち、湿度が高い環境を好む観葉植物です。 | 3500 | 6 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 15 | エバーフレッシュ | 細かい葉が特徴で、夜になると葉を閉じる特性があります。 | 3200 | 3 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 3 | サンスベリア | 厚みのある細長い葉が特徴で、空気清浄効果が期待できる植物です。 | 3000 | 2 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 10 | ポトス | つる性で、耐陰性が強く室内での育成が容易な植物です。 | 2900 | 0 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 16 | アンスリウム | 赤やピンクの鮮やかな花が咲き、長期間花を楽しめる植物です。 | 2700 | 7 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 2 | モンステラ | 大きな切れ目の入った葉が美しい植物で、湿度の高い環境を好みます。 | 2500 | 5 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 7 | カラテア | 葉に美しい模様があり、観賞用に人気の高い植物です。 | 2200 | 12 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 18 | ゴムの木 | 太い幹と大きな葉が特徴で、耐寒性があり丈夫な植物です。 | 1900 | 14 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 5 | ドラセナ・マッサンゲアナ | 幹の節から細長い葉が生え、育てやすいので初心者にもおすすめです。 | 1800 | 15 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 8 | スパティフィラム | 白い花が咲くことがあり、空気をきれいにしてくれる効果もあります。 | 1600 | 18 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 1 | パキラ | 太い幹と大きな葉が特徴の観葉植物で、育てやすくインテリアにも最適です。 | 1500 | 10 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 20 | ペペロミア | 小ぶりで丸い葉が特徴の植物で、乾燥にも強く育てやすいです。 | 1300 | 16 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 13 | クワズイモ | 丸みのある大きな葉が特徴で、熱帯雨林のような雰囲気を楽しめます。 | 1200 | 25 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 4 | フィカス・ベンジャミナ | 葉の茂りが良く、明るい場所で元気に育つ観葉植物です。 | 1200 | 20 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 17 | ポリシャス | 緑の濃い葉と独特の形状が人気の観葉植物です。 | 1100 | 22 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 12 | ゼラニウム | 可愛らしい花が特徴の植物で、屋内外で育てられます。 | 900 | 9 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 9 | シュフレラ | 葉が放射状に広がり、明るいグリーンが部屋のアクセントになります。 | 800 | 30 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 14 | シェフレラ・アルボリコラ | 葉が傘のような形をしており、耐陰性が強い観葉植物です。 | 450 | 35 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
上位5件を取得
取得するレコードを制限したい場合には、limit()を使います。
$products = Product::limit(5)->get();取得結果を確認する
| id | name | description | price | stock | created_at | updated_at | 
|---|---|---|---|---|---|---|
| 1 | パキラ | 太い幹と大きな葉が特徴の観葉植物で、育てやすくインテリアにも最適です。 | 1500 | 10 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 2 | モンステラ | 大きな切れ目の入った葉が美しい植物で、湿度の高い環境を好みます。 | 2500 | 5 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 3 | サンスベリア | 厚みのある細長い葉が特徴で、空気清浄効果が期待できる植物です。 | 3000 | 2 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 4 | フィカス・ベンジャミナ | 葉の茂りが良く、明るい場所で元気に育つ観葉植物です。 | 1200 | 20 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 5 | ドラセナ・マッサンゲアナ | 幹の節から細長い葉が生え、育てやすいので初心者にもおすすめです。 | 1800 | 15 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
レコードの一部取得(findやfirst)
主キーでの取得
特定のIDの商品を取得したい場合はfind()を使います。
$products = Product::find(1); 取得結果を確認する
| id | name | description | price | stock | created_at | updated_at | 
|---|---|---|---|---|---|---|
| 1 | パキラ | 太い幹と大きな葉が特徴の観葉植物で、育てやすくインテリアにも最適です。 | 1500 | 10 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
最初の1件を取得
条件にマッチした最初のレコードだけを取得する場合にはfirst()を使います。
$product = Product::where('price', '>', 1000)->first();取得結果を確認する
| id | name | description | price | stock | created_at | updated_at | 
|---|---|---|---|---|---|---|
| 1 | パキラ | 太い幹と大きな葉が特徴の観葉植物で、育てやすくインテリアにも最適です。 | 1500 | 10 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
priceカラムの値が1000よりも大きい値を持つ最初のレコードを取得しています。
複数条件の取得
orWhereを使って、複数の条件にマッチするデータを取得することができます。
$products = Product::where('stock', '<', 5)
                   ->orWhere('price', '>', 3000)
                   ->get();取得結果を確認する
| id | name | description | price | stock | created_at | updated_at | 
|---|---|---|---|---|---|---|
| 3 | サンスベリア | 厚みのある細長い葉が特徴で、空気清浄効果が期待できる植物です。 | 3000 | 2 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
| 11 | フィロデンドロン | 大きな葉を持ち、湿度が高い環境を好む観葉植物です。 | 3500 | 6 | 2024-09-26 07:31:28 | 2024-09-26 07:31:28 | 
このように、stockカラムの値が5未満かつ、priceカラムの値が3000よりも値が大きいレコードを取得しています。
まとめ
LaravelでDBテーブルからデータを取得する複数の方法を紹介しました。
また取得したデータをページに表示する方法についても解説しているので、データベースから取得したデータをページ上に表示させることもできるようになったはずです。
ぜひこの記事を参考に効率的なデータ操作を学び、Laravelの機能を活用していただけると幸いです。
 
               		           		   
		
	 
																					 
																					