Laravel の クエリ ビルダー は、PHP で SQL クエリを構築するための強力で流暢なインターフェイスを提供します。これにより、複雑さのほとんどを抽象化しながら、表現力豊かな SQL のような構文でデータベースを操作できるようになります。
データの選択、挿入、更新、削除などのさまざまなタスクにクエリ ビルダーを使用する 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
クエリ ビルダーの使用法を示すコントローラーを作成しましょう:
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!']); } }
クエリ ビルダーを使用して、users テーブルからすべての行を選択します:
$users = DB::table('users')->get();
応答例:
[ { "id": 1, "name": "John Doe", "email": "[email protected]" }, { "id": 2, "name": "Jane Doe", "email": "[email protected]" } ]
クエリ ビルダーを使用して新しいユーザーを挿入:
DB::table('users')->insert([ 'name' => 'Alice', 'email' => '[email protected]', 'password' => bcrypt('password123'), ]);
これにより、ユーザー テーブルに新しいユーザーが追加されます。
既存のレコードを更新するには、update():
を使用します。
DB::table('users') ->where('id', 1) ->update([ 'name' => 'John Smith', 'email' => '[email protected]' ]);
これにより、users テーブル内の ID 1 のユーザーが更新されます。
データベースからレコードを削除するには、delete():
を使用します。
DB::table('users')->where('id', 2)->delete();
これにより、ID 2 のユーザーが削除されます。
追加のメソッドを連鎖させてデータをフィルターしたり、クエリに条件を追加したりできます。
$users = DB::table('users') ->where('email', 'like', '%example.com%') ->orderBy('name', 'asc') ->get();
Laravel のクエリ ビルダーを使用すると、結果のページネーションが簡単になります。
$users = DB::table('users')->paginate(10);
データベース トランザクションを使用して、複数のクエリが正常に実行されるようにします。 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 ]); });
生の SQL を実行する必要がある場合は、Laravel のクエリ ビルダーで実行できます。
$users = DB::select('SELECT * FROM users WHERE id = ?', [1]);
Laravel のクエリ ビルダーは、データベースと対話するための強力かつ柔軟な方法を提供し、SQL の複雑さの多くを抽象化します。 取得、挿入、更新、削除、フィルタリングなどの各部分を細分化することで、データベースのやり取りをすっきりと整理された方法で簡単に管理できます。
この例では、クエリ ビルダーの基本ガイドを提供します。アプリケーションが成長するにつれて、Eloquent を使用した結合、サブクエリ、即時読み込みなどのより高度な機能を使用できるようになります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3