>백엔드 개발 >PHP 튜토리얼 >Laravel 시작하기: 쿼리 작성기 초보자 가이드

Laravel 시작하기: 쿼리 작성기 초보자 가이드

Susan Sarandon
Susan Sarandon원래의
2024-09-23 06:22:02709검색

Getting Started with Laravel: A Beginner

Laravel의 Query Builder는 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 = DB::table('users')->get();
  • 설명:
    • DB::table('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() 메소드는 사용자 테이블에 새 행을 삽입합니다.
    • 데이터는 키가 열 이름과 일치하는 연관 배열로 전달됩니다.

이렇게 하면 사용자 테이블에 새 사용자가 추가됩니다.


5단계: 데이터 업데이트

기존 레코드를 업데이트하려면 update()를 사용하세요.

DB::table('users')
    ->where('id', 1)
    ->update([
        'name' => 'John Smith',
        'email' => 'johnsmith@example.com'
    ]);
  • 설명:
    • where() 절은 ID = 1인 행을 선택합니다.
    • update() 메소드는 선택한 행의 이름 및 이메일 필드를 수정합니다.

이렇게 하면 사용자 테이블의 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() 메소드는 결과를 페이지로 나누어 페이지당 10개의 결과를 표시합니다.

9단계: 거래

여러 쿼리가 성공적으로 실행되도록 하려면 데이터베이스 트랜잭션을 사용하세요. 하나의 쿼리가 실패하면 모든 변경 사항이 롤백됩니다.

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() 메소드는 사용자 및 주문 테이블 삽입이 모두 성공적으로 실행되도록 보장합니다. 둘 중 하나라도 실패하면 두 작업이 모두 롤백됩니다.

10단계: 원시 쿼리

원시 SQL을 실행해야 하는 경우 Laravel의 쿼리 빌더를 사용하면 다음이 가능합니다.

$users = DB::select('SELECT * FROM users WHERE id = ?', [1]);
  • 설명:
    • select() 메소드를 사용하여 원시 SQL 쿼리를 실행할 수 있습니다.
    • 보안을 위해 준비된 문장(?)을 사용하여 SQL 주입을 방지합니다.

결론

Laravel의 쿼리 빌더는 데이터베이스와 상호 작용할 수 있는 강력하고 유연한 방법을 제공하여 SQL 복잡성을 상당 부분 추상화합니다. 검색, 삽입, 업데이트, 삭제, 필터링 등 각 부분을 세분화하여 깔끔하고 체계적인 방식으로 데이터베이스 상호 작용을 쉽게 관리할 수 있습니다.

이 예는 쿼리 작성기에 대한 기본 가이드를 제공합니다. 애플리케이션이 성장함에 따라 조인, 하위 쿼리, Eloquent의 Eager 로딩과 같은 고급 기능을 사용할 수 있습니다.

위 내용은 Laravel 시작하기: 쿼리 작성기 초보자 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.