-
라라벨 dynamic scope.백엔드/laravel 2024. 1. 20. 18:25
다이내믹 스코프는 Eloquent 모델에서 사용되는 동적인 쿼리 스코핑 방법으로, 런타임에 조건을 변경할 수 있게 해줍니다. 이것은 메서드 형태로 모델에 추가되며, 런타임에 전달되는 인자에 따라 동적으로 쿼리를 수정합니다.
다이내믹 스코프의 일반적인 정의 형태는 다음과 같습니다.
public function scopeScopeName($builder, $parameter1, $parameter2, ...)
{
// $builder는 Illuminate\Database\Eloquent\Builder 인스턴스입니다.
// $parameter1, $parameter2 등은 런타임에 전달되는 인자입니다.
// 조건을 추가하여 동적으로 쿼리를 변경합니다.
return $builder->where(...)->orWhere(...)->orderBy(...);
}여기서 scopeName은 스코프의 이름이며, $parameter1, $parameter2 등은 런타임에 전달되는 인자입니다.
$builder는 Eloquent의 쿼리 빌더 객체로, 여기에 조건을 추가하여 쿼리를 변경합니다.
일반적인 다이내믹 스코프 사용 패턴은 다음과 같습니다.
$models = Model::scopeName($parameter1, $parameter2)->get();
다이내믹 스코프는 런타임에 다양한 상황에 맞게 쿼리를 동적으로 수정할 수 있는 강력한 도구로 사용됩니다.
하지만 이해하기 쉽게 작성하고, 모듈화된 코드를 유지하기 위해 너무 복잡하게 만들지 않는 것이 중요합니다.
'백엔드 > laravel' 카테고리의 다른 글
Trait 로 model Scopes 정리하기 (0) 2024.01.20 Local Scopes 와 Dynamic Scopes 사이의 주요 차이 중 하나 (0) 2024.01.20 라라벨 local scopes (0) 2024.01.20 라라벨 global scopes (2) 2024.01.20 라라벨 기존 모델의 복사본(replicate) 만들기 (0) 2024.01.20