>PHP 프레임워크 >Laravel >Laravel의 ORM 구현 원리에 대한 자세한 설명

Laravel의 ORM 구현 원리에 대한 자세한 설명

PHPz
PHPz원래의
2023-04-03 18:52:251023검색

Laravel은 널리 사용되고 호평을 받는 PHP 프레임워크입니다. 데이터베이스 액세스부터 라우팅 및 컨트롤러에 이르기까지 많은 유용한 기능을 제공합니다. 그 중 ORM(Object-Relational Mapping)은 Laravel의 중요한 구성 요소로, 데이터베이스를 편리하게 운영할 수 있는 방법을 제공하고 코드를 더 명확하고 이해하기 쉽게 만듭니다. 이번 글에서는 Laravel ORM의 구현 원리에 대해 자세히 살펴보겠습니다.

ORM이란 무엇인가요?

먼저 ORM에 대해 간단히 소개하겠습니다. ORM은 객체지향 프로그래밍(OOP)과 관계형 데이터베이스 간의 매핑을 설정하는 기술입니다. ORM에서 각 테이블은 클래스에 해당하고 각 행은 개체에 해당합니다. 이런 방식으로 객체를 통해 데이터베이스 작업을 단순화할 수 있어 코드를 더 명확하고 이해하기 쉽게 만듭니다. ORM의 장점은 SQL 문을 사용하는 대신 보다 자연스러운 방식으로 데이터베이스에 액세스할 수 있다는 것입니다. 따라서 ORM은 Laravel에서 매우 중요합니다. 이를 통해 PHP가 데이터베이스와 상호 작용하고 코드를 더 빠르고 안정적으로 작성할 수 있습니다.

Laravel ORM 구현 원칙

Laravel의 ORM 구현은 Active Record 디자인 패턴을 기반으로 합니다. Active Record에서 클래스는 테이블에 해당하고 이 클래스의 인스턴스는 행에 해당합니다. Laravel은 강력하고 사용하기 쉬운 ORM인 Eloquent ORM을 기본 ORM으로 사용합니다. Eloquent를 사용하면 객체를 조작하여 데이터베이스 작업 프로세스를 단순화할 수 있습니다.

아래에서는 Laravel ORM의 구현 원리에 대해 심층적으로 이해할 것입니다.

데이터베이스에 연결

ORM을 사용하기 전에 먼저 데이터베이스에 연결해야 합니다. Laravel에서는 PDO 확장 라이브러리를 사용하여 관계형 데이터베이스에 연결합니다. Laravel ORM을 사용하기 전에 먼저 Laravel이 이 설정에 따라 데이터베이스에 연결할 데이터베이스를 정의해야 합니다.

모델 정의

Laravel에서 각 데이터베이스 테이블은 Eloquent 모델에 해당합니다. 이 모델은 IlluminateDatabaseEloquentModel 클래스에서 상속해야 하는 일반 PHP 클래스입니다. Eloquent 모델에서는 모델에 해당하는 데이터 테이블 이름, 기본 키 및 채울 수 있는 필드를 정의할 수 있습니다. 이러한 설정은 Eloquent를 통해 데이터 테이블 및 해당 데이터 레코드의 작업을 자동으로 처리합니다.

예를 들어 Laravel에서 User 모델을 정의하려면 다음과 같이 작성할 수 있습니다.

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    protected $table = 'users';

    protected $primaryKey = 'id';

    protected $fillable = ['name', 'email', 'password'];
}

위 코드에서 $table 속성은 해당 데이터 테이블 이름 "users"를 지정하고 $primaryKey 속성은 해당 데이터 테이블 이름을 지정합니다. 기본 키 필드의 이름은 "id"이며 $fillable 속성은 Eloquent를 통해 자동으로 업데이트될 수 있는 필드를 지정합니다.

Query method

ORM의 가장 기본적인 기능은 데이터베이스를 쿼리하는 것입니다. Laravel에서 Eloquent는 데이터를 쉽게 쿼리하고 필터링하고 정렬할 수 있도록 다양한 쿼리 메소드를 제공합니다.

예를 들어, 다음과 같은 방법으로 User 테이블의 모든 사용자를 쿼리할 수 있습니다:

$users = App\Models\User::all();

이 쿼리 메소드는 User 모델 클래스를 통해 데이터베이스 테이블 "users"를 쿼리하고 모든 사용자가 포함된 Eloquent 컬렉션 객체를 반환합니다.

쿼리 빌더를 사용하여 더 복잡한 쿼리 문을 작성할 수도 있습니다. 예:

$users = App\Models\User::where('name', 'John')->orderBy('id', 'desc')->get();

이 쿼리문은 "John"이라는 이름의 모든 사용자를 쿼리하고 ID 필드에 따라 내림차순으로 정렬한 후 Eloquent 컬렉션 객체를 반환합니다.

데이터 삽입

Laravel에서는 ORM을 사용하여 데이터를 삽입하는 것이 매우 편리합니다. 새로운 Eloquent 모델 인스턴스를 생성하고 해당 필드의 값을 설정한 다음 save() 메소드를 통해 데이터베이스에 저장하기만 하면 됩니다.

예를 들어 다음과 같은 방법으로 User 테이블에 새 데이터를 삽입할 수 있습니다.

$user = new App\Models\User;

$user->name = 'John Doe';
$user->email = 'john@example.com';
$user->password = bcrypt('secret');

$user->save();

이 삽입 작업은 새 User 인스턴스를 생성하고 "name", "email" 및 "password" 속성을 설정합니다. . 그런 다음 데이터베이스에 저장합니다.

데이터 업데이트

Laravel에서는 Eloquent를 통해 쉽게 데이터를 업데이트할 수도 있습니다. 업데이트할 데이터 레코드를 찾은 다음 해당 필드의 값을 설정하고 마지막으로 save() 메서드를 호출하여 데이터베이스에 업데이트하기만 하면 됩니다.

예를 들어 id 필드로 레코드를 찾은 다음 "name" 필드를 "Jane"으로 업데이트할 수 있습니다.

$user = App\Models\User::find(1);

$user->name = 'Jane';

$user->save();

이 업데이트 작업은 기본 키 1을 사용하는 사용자 레코드를 찾아 "name"을 변경합니다. " 필드를 "Jane"으로 업데이트한 다음 데이터베이스로 업데이트합니다.

데이터 삭제

마지막으로 Laravel에서는 데이터 기록을 편리하게 삭제할 수도 있습니다. 삭제할 데이터 레코드를 찾은 다음 delete() 메서드를 호출하기만 하면 됩니다.

예를 들어, id 필드를 통해 레코드를 찾아 삭제할 수 있습니다.

$user = App\Models\User::find(1);

$user->delete();

이 삭제 작업은 기본 키 1이 있는 사용자 레코드를 찾아 데이터베이스에서 삭제합니다.

요약

ORM은 Laravel의 중요한 구성 요소로, 데이터베이스를 운영하는 편리한 방법을 제공하고 코드를 더 명확하고 이해하기 쉽게 만듭니다. 이 기사에서는 데이터베이스 연결, 모델 정의, 데이터 쿼리, 데이터 삽입, 데이터 업데이트 및 데이터 삭제 방법을 포함하여 Laravel ORM의 구현 원칙에 대해 심층적으로 이해했습니다. 이 지식을 습득함으로써 우리는 Laravel ORM을 사용하여 데이터베이스 작업을 더 잘 구현할 수 있으며 이를 통해 코드를 더 빠르고 안정적으로 작성할 수 있습니다.

위 내용은 Laravel의 ORM 구현 원리에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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