"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Laravel(StepWise)의 전역 범위.

Laravel(StepWise)의 전역 범위.

2024-11-08에 게시됨
검색:502

Global Scope in Laravel (StepWise).

전역 범위는 Laravel의 중요한 개념으로, 애플리케이션 전체에서 Eloquent 조건을 재사용할 수 있도록 해줍니다. 전역 범위를 구현하면 모든 모델의 쿼리에 특정 조건을 적용하여 코드 재사용 및 일관성을 높일 수 있습니다. 대조적으로, 로컬 범위는 단일 모델로 제한됩니다. 이 튜토리얼에서는 Laravel에서 전역 범위를 생성하고 활용하는 방법에 중점을 둘 것입니다.

  1. 이 단계에서는 앱/범위/ActiveScope
where('is_active', '=', '1');

        //or we can write
        $builder->whereIsActive('1');

    }
}
  1. 이제 사용자 모델에서 ActiveScope를 정의합니다. 주어진 모델의 부팅 메소드를 재정의하고 addGlobalScope 메소드를 사용해야 합니다:

모델에 ActiveScope를 추가한 후 User::all()은 다음 SQL을 생성합니다.

select * from `users` where `is_active` = '1'

전역 범위를 적용하지 않고 모든 데이터를 가져오려는 시나리오가 있을 수 있습니다. Laravel에서는 WithoutGlobalScope 메소드를 사용하여 전역 범위를 우회하고 모든 데이터를 가져올 수 있습니다.

User::withoutGlobalScope(ActiveScope::class)->get();

모델에 적용된 여러 개의 전역 범위 또는 전체 범위를 제거하려면 Laravel의 WithoutGlobalScopes 메소드를 사용할 수 있습니다. 이 방법을 사용하면 모든 전역 범위를 우회하거나 제거하려는 전역 범위를 지정할 수 있습니다. 예는 다음과 같습니다.

// Remove all of the global scopes...
User::withoutGlobalScopes()->get();
// Remove some of the global scopes...
User::withoutGlobalScopes([
    ActiveScope::class, AgeScope::class
])->get();

그리고 콘텐츠가 마음에 들고 더 멋진 기사를 후원하고 싶다면 커피 한 잔 사주세요! ?️? 귀하의 지원은 나에게 세상을 의미하며 지식이 계속 흐르도록 도와줍니다. 바로 여기서 할 수 있습니다: ? 커피 사주세요

릴리스 선언문 이 글은 https://dev.to/aj_c6413caf1a793de3a2163b/global-scope-in-laravel-stepwise-1ij8?1에서 복제됩니다.1 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3