주요 사항:
- 쿼리 범위는 Eloquent 쿼리의 제약 조건을 캡슐화하여 코드의 가독성과 재사용성을 향상시킨다.
- 지역 쿼리 범위는 수동으로 적용되며, 전역 쿼리 범위는 기본적으로 모든 모델 쿼리에 적용된다.
- 전역 쿼리 범위는 제약 조건을 일관되게 필터링하는 것을 보장하여 잊어버리는 것을 방지하고 코드 일관성을 유지한다.
- `scopePublished` 및 `scopeNotPublished`은 블로그 포스트의 발행 상태에 따라 필터링하는 지역 쿼리 범위의 예시다.
- `TeamScope`은 다중 테넌트 애플리케이션에서 팀 ID로 쿼리를 필터링하는 전역 쿼리 범위의 예시다.
- 전역 범위는 모델의 `booted` 메서드에서 `ScopedBy` 속성 또는 `addGlobalScope` 메서드를 통해 적용할 수 있다.
- 익명 전역 범위는 모델 자체에서 범위를 정의하는 대체 방법을 제공한다.
- `withoutGlobalScopes`는 특정 쿼리에서 전역 범위를 무시할 수 있도록 허용한다.
- 쿼리 범위는 복잡한 제약 조건의 재사용으로 인한 코드 유지 보수 및 오류 위험을 줄여준다.
laravel-news.com
Learn to master Query Scopes in Laravel
