집 >데이터 베이스 >MySQL 튜토리얼 >Laravel의 고급 Where 클로저에 변수를 어떻게 전달할 수 있나요?
Laravel의 고급 Where 클로저에 변수 전달
Laravel의 고급 where 함수는 쿼리를 필터링하는 강력한 방법을 제공합니다. 그러나 where 함수에 사용된 클로저에 외부 변수를 전달해야 하는 상황이 발생할 수 있습니다.
예시 시나리오
외부 변수를 사용하고 싶다고 가정해 보겠습니다. (예: $searchQuery) where 클로저:
->where('city_id', '=', $this->city->id) ->where(function($query) { $query->where('name', 'LIKE', '%'.$searchQuery.'%') ->orWhere('address', 'LIKE', '%'.$searchQuery.'%') })
키워드 사용 해결책
use 키워드를 사용하여 필요한 변수를 클로저에 전달할 수 있습니다:
DB::table('users')->where(function ($query) use ($searchQuery) { $query->where('name', 'LIKE', '%'.$searchQuery.'%') ->orWhere('address', 'LIKE', '%'.$searchQuery.'%') })->get();
PHP 7.4 화살표 함수(업데이트)
PHP 7.4 이상에서는 화살표 기능을 사용하여 보다 간결하게 작성할 수 있습니다. 구문:
DB::table('users')->where(fn($query) => $query->where('name', 'LIKE', '%'.$searchQuery.'%') ->orWhere('address', 'LIKE', '%'.$searchQuery.'%'))->get();
일반 익명 함수와 달리 화살표 함수는 상위 범위에서 변수를 자동으로 캡처하며 사용을 통한 명시적 나열을 허용하지 않습니다. 그러나 단일 return 문이 있어야 하며 여러 줄의 코드를 포함할 수 없습니다.
위 내용은 Laravel의 고급 Where 클로저에 변수를 어떻게 전달할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!