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();
일반 구문과 비교하여 화살표 함수에는 다음과 같은 차이점이 있습니다. :
위 내용은 Laravel의 `whereExists` 하위 쿼리에 변수를 효율적으로 전달하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!