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 = 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]' ]);
이렇게 하면 사용자 테이블에서 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' => '[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