> 데이터 베이스 > MySQL 튜토리얼 > Laravel의 `whereExists` 하위 쿼리에 변수를 효율적으로 전달하는 방법은 무엇입니까?

Laravel의 `whereExists` 하위 쿼리에 변수를 효율적으로 전달하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-16 08:34:12
원래의
610명이 탐색했습니다.

How to Efficiently Pass Variables into Laravel's `whereExists` Subqueries?

Laravel의 고급 Wheres에 변수 전달

Laravel에서 whereExists 메소드와 함께 하위 쿼리를 사용하는 것은 간단할 수 있습니다. 그러나 외부 변수를 클로저 내에 통합해야 할 때 문제가 발생합니다. $this->city->id와 같은 외부 변수를 사용하면 코드 효율성이 떨어질 수 있습니다.

해결책: 'use' 키워드 활용

이 문제를 해결하기 위해 use 키워드를 사용하면 필요한 변수가 상위 범위에서 클로저로 전달될 수 있습니다. 이 접근 방식을 사용하면 클로저 내에서 외부 변수를 편리하게 사용할 수 있습니다.

예:

DB::table('users')
    ->where(function ($query) use ($activated) {
        $query->where('activated', '=', $activated);
    })
    ->get();
로그인 후 복사

PHP 7.4 업데이트: 화살표 함수

PHP 7.4에는 익명 함수의 보다 간결한 형태인 화살표 함수가 도입되었습니다. 이는 클로저에 변수를 전달하는 훨씬 더 간단한 방법을 제공합니다.

다음은 PHP 7.4에서 화살표 함수를 사용하는 예입니다.

DB::table('users')
    ->where(fn($query) => $query->where('activated', '=', $activated))
    ->get();
로그인 후 복사

일반 구문과 비교하여 화살표 함수에는 다음과 같은 차이점이 있습니다. :

  • 대신 fn 키워드를 사용합니다. function.
  • 상위 범위의 모든 변수를 자동으로 캡처하므로 use 키워드가 필요하지 않습니다.
  • 항상 값을 반환하므로 void 반환 유형 선언이 불가능합니다.
  • return 키워드를 생략해야 합니다.
  • 단일 표현식으로 정의해야 하며 여러 줄 기능을 제한하지만 메소드를 허용합니다. 연결됩니다.

위 내용은 Laravel의 `whereExists` 하위 쿼리에 변수를 효율적으로 전달하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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