Laravel의 Query Builder는 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 = 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'), ]);
이렇게 하면 사용자 테이블에 새 사용자가 추가됩니다.
기존 레코드를 업데이트하려면 update()를 사용하세요.
DB::table('users') ->where('id', 1) ->update([ 'name' => 'John Smith', 'email' => 'johnsmith@example.com' ]);
이렇게 하면 사용자 테이블의 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);
여러 쿼리가 성공적으로 실행되도록 하려면 데이터베이스 트랜잭션을 사용하세요. 하나의 쿼리가 실패하면 모든 변경 사항이 롤백됩니다.
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의 Eager 로딩과 같은 고급 기능을 사용할 수 있습니다.
위 내용은 Laravel 시작하기: 쿼리 작성기 초보자 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!