ホームページ > バックエンド開発 > PHPチュートリアル > Laravel 入門: クエリ ビルダーの初心者ガイド

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

Susan Sarandon
リリース: 2024-09-23 06:22:02
オリジナル
690 人が閲覧しました

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 を編集します:

<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;

class UserController extends Controller
{
    // Fetching all users from the users table
    public function index()
    {
        // Step 3: Select all users
        $users = DB::table('users')->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') メソッドは、users テーブルをターゲットとしています。
    • get() メソッドは、そのテーブルからすべてのレコードを取得します。

応答例:

[
    {
        "id": 1,
        "name": "John Doe",
        "email": "john@example.com"
    },
    {
        "id": 2,
        "name": "Jane Doe",
        "email": "jane@example.com"
    }
]
ログイン後にコピー

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

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

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

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


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

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

DB::table('users')
    ->where('id', 1)
    ->update([
        'name' => 'John Smith',
        'email' => 'johnsmith@example.com'
    ]);
ログイン後にコピー
  • 説明:
    • 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' => 'john@example.com',
        '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 を使用した結合、サブクエリ、一括読み込みなどのより高度な機能を使用できるようになります。

以上がLaravel 入門: クエリ ビルダーの初心者ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート