집 >데이터 베이스 >MySQL 튜토리얼 >Laravel Advanced Where 절에 변수를 전달하는 방법은 무엇입니까?
사용자 정의를 사용하여 결과를 필터링하는 경우와 같이 외부 변수를 Laravel 고급 where 절에 전달해야 하는 상황에서 검색 기준에 따라 문서에 제공된 기본 구문으로는 충분하지 않을 수 있습니다.
다행히도 다음을 사용하는 더 편리한 솔루션이 있습니다. 키워드를 사용하면 부모 범위의 변수를 where 절을 정의하는 클로저로 캡처할 수 있습니다. 예를 들면 다음과 같습니다.
DB::table('users')->where(function($query) use ($searchQuery) { $query->where('name', 'LIKE', '%'.$searchQuery.'%') ->orWhere('address', 'LIKE', '%'.$searchQuery.'%'); });
이 예에서 $searchQuery 변수는 상위 범위에서 클로저로 전달되며 where 절 내에서 사용할 수 있습니다. use 키워드를 사용하면 변수가 참조로 캡처되어 클로저 내에서 변수에 액세스하고 수정할 수 있습니다.
또는 PHP 7.4의 화살표 함수를 도입하면 다음과 같은 결과를 얻을 수 있습니다. 더 간결한 구문:
DB::table('users')->where(fn($query) => $query->where('name', 'LIKE', '%'.$searchQuery.'%') ->orWhere('address', 'LIKE', '%'.$searchQuery.'%'));
화살표 함수는 상위 범위의 변수를 자동으로 캡처하므로 use를 사용하여 명시적으로 나열할 필요가 없습니다. 그러나 화살표 함수는 항상 값을 반환하며 반환 키워드를 생략해야 한다는 점에 유의하는 것이 중요합니다.
위 내용은 Laravel Advanced Where 절에 변수를 전달하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!