ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Local Scopes 와 Dynamic Scopes 사이의 주요 차이 중 하나
    백엔드/laravel 2024. 1. 20. 18:27

     

    로컬 스코프(Local Scopes):

    로컬 스코프는 인자를 받지 않습니다. 로컬 스코프는 주로 고정된 조건을 적용하여 자주 사용되는 쿼리를 간편하게 사용할 수 있도록 하는 데 중점을 둡니다. 로컬 스코프를 정의할 때는 메서드에서 하드 코딩된 조건을 지정하며, 쿼리 빌더를 반환합니다.

     

    // 로컬 스코프 정의
    public function scopePublished($query)
    {
        return $query->where('is_published', true);
    }

    // 사용 예
    $publishedPosts = Post::published()->get();

     

    다이내믹 스코프(Dynamic Scopes):

    다이내믹 스코프는 인자를 받아 런타임에 동적으로 쿼리를 수정하는 데 중점을 둡니다. 동적 스코프를 정의할 때는 메서드에 추가 매개변수를 설정하고, 해당 매개변수를 사용하여 쿼리를 동적으로 조작합니다.

     

    // 다이내믹 스코프 정의
    public function scopePublishedByUser($query, $userId)
    {
        return $query->where('user_id', $userId)->whereNotNull('created_at');
    }

    // 사용 예
    $userPosts = Post::publishedByUser(1)->get();

     

     

    로컬 스코프는 정적이고 고정된 쿼리 패턴을 추상화하는 데 사용되며, 다이내믹 스코프는 런타임에 유연하게 조건을 변경해야 할 때 유용합니다.

     
     
     
     

    '백엔드 > laravel' 카테고리의 다른 글

    Laravel에서 Eloquent ORM과 Query Builder 사용 비교  (0) 2024.01.20
    Trait 로 model Scopes 정리하기  (0) 2024.01.20
    라라벨 dynamic scope.  (0) 2024.01.20
    라라벨 local scopes  (0) 2024.01.20
    라라벨 global scopes  (2) 2024.01.20

    댓글

Designed by Tistory.