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 を編集します:
<?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!']); } }
クエリ ビルダー を使用して、users テーブルからすべての行を選択します。
$users = DB::table('users')->get();
応答例:
[ { "id": 1, "name": "John Doe", "email": "john@example.com" }, { "id": 2, "name": "Jane Doe", "email": "jane@example.com" } ]
クエリ ビルダーを使用して新しいユーザーを挿入します:
DB::table('users')->insert([ 'name' => 'Alice', 'email' => 'alice@example.com', 'password' => bcrypt('password123'), ]);
これにより、新しいユーザーが users テーブルに追加されます。
既存のレコードを更新するには、update():
を使用します。
DB::table('users') ->where('id', 1) ->update([ 'name' => 'John Smith', 'email' => 'johnsmith@example.com' ]);
これにより、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' => 'john@example.com', '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 を使用した結合、サブクエリ、一括読み込みなどのより高度な機能を使用できるようになります。
以上がLaravel 入門: クエリ ビルダーの初心者ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。