「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Laravel 入門: クエリ ビルダーの初心者ガイド

Laravel 入門: クエリ ビルダーの初心者ガイド

2024 年 11 月 8 日に公開
ブラウズ:901

Getting Started with Laravel: A Beginner

Laravel の クエリ ビルダー は、PHP で SQL クエリを構築するための強力で流暢なインターフェイスを提供します。これにより、複雑さのほとんどを抽象化しながら、表現力豊かな SQL のような構文でデータベースを操作できるようになります。

データの選択、挿入、更新、削除などのさまざまなタスクにクエリ ビルダーを使用する Laravel アプリケーションの典型的な使用例を説明します。


ステップ 1: Laravel プロジェクトをセットアップする

Laravel プロジェクトがない場合は、次のようにセットアップできます:

composer create-project --prefer-dist laravel/laravel laravel-query-builder
cd laravel-query-builder
php artisan serve

.env ファイルでデータベース構成をセットアップしていることを確認してください:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database
DB_USERNAME=your_username
DB_PASSWORD=your_password

デフォルト テーブルを作成するための移行の実行:

php artisan migrate

ステップ 2: コントローラーでクエリ ビルダーを使用する

クエリ ビルダーの使用法を示すコントローラーを作成しましょう:

php artisan make:controller UserController

次のコードで UserController.php を編集します:

get();

        return response()->json($users);
    }

    // Insert a new user
    public function store(Request $request)
    {
        // Step 4: Insert a new user
        DB::table('users')->insert([
            'name' => $request->name,
            'email' => $request->email,
            'password' => bcrypt($request->password),
        ]);

        return response()->json(['message' => 'User created successfully!']);
    }

    // Update an existing user
    public function update(Request $request, $id)
    {
        // Step 5: Update user by ID
        DB::table('users')
            ->where('id', $id)
            ->update([
                'name' => $request->name,
                'email' => $request->email,
            ]);

        return response()->json(['message' => 'User updated successfully!']);
    }

    // Delete a user
    public function destroy($id)
    {
        // Step 6: Delete user by ID
        DB::table('users')->where('id', $id)->delete();

        return response()->json(['message' => 'User deleted successfully!']);
    }
}

ステップ 3: データを取得する

クエリ ビルダーを使用して、users テーブルからすべての行を選択します:

$users = DB::table('users')->get();
  • 説明
    • DB::table('users') メソッドは us​​ers テーブルをターゲットとしています。
    • get() メソッドは、そのテーブルからすべてのレコードを取得します。

応答例:

[
    {
        "id": 1,
        "name": "John Doe",
        "email": "[email protected]"
    },
    {
        "id": 2,
        "name": "Jane Doe",
        "email": "[email protected]"
    }
]

ステップ 4: データを挿入する

クエリ ビルダーを使用して新しいユーザーを挿入:

DB::table('users')->insert([
    'name' => 'Alice',
    'email' => '[email protected]',
    'password' => bcrypt('password123'),
]);
  • 説明
    • insert() メソッドは、users テーブルに新しい行を挿入します。
    • データは、キーが列名と一致する連想配列として渡されます。

これにより、ユーザー テーブルに新しいユーザーが追加されます。


ステップ 5: データを更新する

既存のレコードを更新するには、update():
を使用します。

DB::table('users')
    ->where('id', 1)
    ->update([
        'name' => 'John Smith',
        'email' => '[email protected]'
    ]);
  • 説明
    • where() 句は ID = 1 の行を選択します。
    • update() メソッドは、選択した行の名前フィールドと電子メール フィールドを変更します。

これにより、users テーブル内の ID 1 のユーザーが更新されます。


ステップ 6: データを削除する

データベースからレコードを削除するには、delete():
を使用します。

DB::table('users')->where('id', 2)->delete();
  • 説明
    • where() 句は、ID 2 のユーザーを選択する条件を指定します。
    • delete() メソッドは、テーブルから一致する行を削除します。

これにより、ID 2 のユーザーが削除されます。


ステップ 7: クエリビルダーを使用したフィルタリング

追加のメソッドを連鎖させてデータをフィルターしたり、クエリに条件を追加したりできます。

例: 特定の条件でユーザーを取得する

$users = DB::table('users')
    ->where('email', 'like', '%example.com%')
    ->orderBy('name', 'asc')
    ->get();
  • 説明
    • where() 句は条件を追加し、電子メールに example.com.
    • が含まれるユーザーを取得します。
    • orderBy() メソッドは、ユーザーを名前の昇順に並べ替えます。

ステップ 8: ページネーション

Laravel のクエリ ビルダーを使用すると、結果のページネーションが簡単になります。

$users = DB::table('users')->paginate(10);
  • 説明
    • paginate() メソッドは結果をページに分割し、1 ページあたり 10 件の結果を表示します。

ステップ9: トランザクション

データベース トランザクションを使用して、複数のクエリが正常に実行されるようにします。 1 つのクエリが失敗すると、すべての変更がロールバックされます。

DB::transaction(function () {
    DB::table('users')->insert([
        'name' => 'John Doe',
        'email' => '[email protected]',
        'password' => bcrypt('password123')
    ]);

    DB::table('orders')->insert([
        'user_id' => 1,
        'order_total' => 500
    ]);
});
  • 説明
    • transaction() メソッドは、users テーブルとorders テーブルの両方の挿入が正常に実行されることを保証します。どちらかが失敗した場合、両方の操作がロールバックされます。

ステップ 10: 生のクエリ

生の SQL を実行する必要がある場合は、Laravel のクエリ ビルダーで実行できます。

$users = DB::select('SELECT * FROM users WHERE id = ?', [1]);
  • 説明
    • select() メソッドを使用して、生の SQL クエリを実行できます。
    • セキュリティのために準備されたステートメント (?) を使用し、SQL インジェクションを防ぎます。

結論

Laravel のクエリ ビルダーは、データベースと対話するための強力かつ柔軟な方法を提供し、SQL の複雑さの多くを抽象化します。 取得、挿入、更新、削除、フィルタリングなどの各部分を細分化することで、データベースのやり取りをすっきりと整理された方法で簡単に管理できます。

この例では、クエリ ビルダーの基本ガイドを提供します。アプリケーションが成長するにつれて、Eloquent を使用した結合、サブクエリ、即時読み込みなどのより高度な機能を使用できるようになります。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/mdarifulhaque/getting-started-with-laravel-a-beginners-guide-to-query-builder-j0i?1 侵害がある場合は、study_golang@163 までご連絡ください。 .comを削除してください
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3