ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 라라벨 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();

     

    다이내믹 스코프는 런타임에 다양한 상황에 맞게 쿼리를 동적으로 수정할 수 있는 강력한 도구로 사용됩니다.

    하지만 이해하기 쉽게 작성하고, 모듈화된 코드를 유지하기 위해 너무 복잡하게 만들지 않는 것이 중요합니다.

     
     
     

     

     

     

     

     

     

     

     

     

     

     

    댓글

Designed by Tistory.