롸?
쿼리빌더와 엘로퀀트 본문
1. 개요
라라벨에서 데이터베이스를 다루기 위해서는 쿼리 빌더를 사용하거나 Eloquent ORM(엘로퀀트)를 사용한다. raw SQL 쿼리문을 사용하지 않고 보다 쉽게 데이터베이스를 처리할 수 있도록 도와준다.
데이터베이스 설정 파일은 config/database.php 에 있다. 데이터베이스 설정 파일에는 커넥션 여러 개가 예시로 들어 있는데 이는 어떤 데이터베이스를 사용하더라도 자신에게 맞는 값을 설정하게 하는 일종의 템플릿 역할을 한다.
2. 마이그레이션
데이터베이스 작업을 하기 위해서는 먼저 데이터베이스 스키마를 생성해야 한다. 애플리케이션에서 필요한 테이블을 생성하거나 칼럼을 추가하고 인덱스와 키를 정의 하는 작업이 필요하다. 이런 작업들을 데이터 마이그레이션이라고 하고, 이 마이그레이션 작업을 코드로 처리하는 기능을 제공한다.
마이그레이션 작업을 처리하기 위해서는 먼저 아티즌 명령어를 통해 파일을 생성하고, 생성된 파일에 내용을 작성한 다음 마이그레이션을 실행하면 된다.
마이그레이션 클래스에는 up과 down, 두 개의 메소드가 있는데 up 메소드는 데이터베이스에 테이블, 컬럼, 인덱스를 추가하는데 사용되고, down 메소드는 반대로 up메소드의 동작을 취소함.
3. 쿼리 빌더
데이터를 조회, 변경, 삭제하는데 쿼리 빌더를 사용할 수 있다. 라라벨의 데이터베이스 아키텍처는 여러 가지 데이터베이스와 연결하기 위해서 각기 다른 인터페이스를 사용하지 않고 공통 인터페이스를 사용한다. 따라서 사용하는 데이터베이스를 변경할 때에는 설정만 변경해서 동일한 코드로 다른 데이터베이스에 연결 할 수 있다.
쿼리 빌더는 DB 퍼사드를 통해 실행 할 수 있다.
4. 엘로퀀트
엘로퀀트는 쿼리 빌더를 기반으로 만든, 라라벨의 ORM (Object Relational Mapper, Active Record Pattern 의 구현체)이다. 여러 데이터베이스 작업을 하나의 인터페이스로 처리할 수 있는 데이터베이스 추상화 레이어다.
액티브레코드란 엘로퀀트 클래스 하나가 레코드 하나에 대응되는 것뿐 아니라, 테이블 하나와 관련된 기능을 수행할 수 있음을 의미한다. 레코드 하나 처리하는 작업은 $kim = new user()와 같이 하고, 테이블과 관련된 기능은 Users::all()과 같이 처리할 수 있다. 또한 데이터를 저장하고 삭제하는 기능은 $kim->save(), $kim->delete()처럼 호출하여 처리할 수 있다.
처음 생성하면 위 사진과 같이 빈 클래스가 생성된다. 해당 클래스 내에 필요한 내용을 작성해주면 된다.
엘로퀀트 모델이 연결되는 테이블명은 기본적으로 클래스명의 복수형을 스네이크 표기법으로 표현한 것이다.
테이블을 명시적으로 지정하려면 protected $table = 'posts'; 같이 작성해준다
참고
1. https://laravel.kr/docs/5.8
2. https://yoshikixdrum.tistory.com/241
3. https://l5.appkr.dev/lessons/10-eloquent.html
4. 책 처음부터 제대로 배우는 라라벨
'Framework > Laravel' 카테고리의 다른 글
라라벨 스케줄러 & 크론탭 설정하기 (0) | 2021.12.21 |
---|---|
라라벨 브로드캐스팅 & 라라벨 에코 서버 (0) | 2021.12.10 |
미들웨어 (0) | 2021.11.18 |
라이프사이클 (0) | 2021.11.18 |
라라벨 시작하기 - 세팅&설치 (0) | 2021.11.12 |