> PHP 프레임워크 > Laravel > Laravel에서 범위를 사용하는 방법

Laravel에서 범위를 사용하는 방법

WBOY
풀어 주다: 2022-06-09 11:15:31
원래의
3257명이 탐색했습니다.

laravel에서 범위는 모델의 데이터를 처리하는 데 사용됩니다. 모델에서는 범위로 시작하는 메서드를 정의할 수 있으며 이러한 메서드를 쿼리 범위라고 합니다. ($query){...}"의 첫 글자를 사용합니다.

Laravel에서 범위를 사용하는 방법

이 문서의 운영 환경: Windows 10 시스템, Laravel 버전 8, Dell G3 컴퓨터.

laravel에서 범위를 사용하는 방법

scope in laravel

laravel에서는 템플릿(템플릿에 속하지만 속하지 않음)에서 처리되는 데이터(추가, 삭제, 수정, 확인)가 소개됩니다. to range to handler

즉, 템플릿 정의 메소드에서 접두사 범위를 추가합니다.

간단히 말하면 Laravel의 모델은 범위 시작 부분에 메서드를 정의할 수 있으며, 이러한 메서드는 모델을 통해 직접 호출할 수 있습니다. 이러한 유형의 접근 방식을 쿼리 범위라고도 합니다.

조건부 쿼리는 데이터 쿼리에 자주 사용됩니다. 이러한 쿼리 조건 중 일부는 동일한 조건부 쿼리를 재사용할 수 있습니다.

일반 범위

정의

메서드 이름은 범위 + 첫 글자를 대문자로 표기합니다(이것은 부담없이 정의할 수 있습니다)

public function scopeStatus($query)
{
    return $query->where('status',1);
}
로그인 후 복사

Use

범위를 제거한 후 첫 글자를 소문자로 함수를 호출합니다.

scopeStatus()는 상태()를 호출합니다.

User::status()->get();
로그인 후 복사

전역 범위

기본적으로 전역적으로 사용되도록 부팅 방법을 재정의하고 상위 클래스 부팅을 통합하고 전역 범위를 추가해야 합니다.

protected static function boot()
{
    parent::boot(); // TODO: Change the autogenerated stub
    static::addGlobalScope('avaiable',function (Builder $builder){
        $builder->whereIn('status', [0, 1]);
    });
}
로그인 후 복사

때로는 이 전역 범위가 필요하지 않은 쿼리가 있는 경우 이를 제거해야 합니다.

withOutGlobalScope() 메소드 사용

Post::withOutGlobalScope('avaiable')->get();
로그인 후 복사

[관련 권장사항: laravel 비디오 튜토리얼]

위 내용은 Laravel에서 범위를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿