>데이터 베이스 >MySQL 튜토리얼 >Laravel Advanced Where 절에 변수를 전달하는 방법은 무엇입니까?

Laravel Advanced Where 절에 변수를 전달하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-17 07:01:25849검색

How to Pass Variables into Laravel Advanced Where Clauses?

Laravel 고급 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.