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

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

Patricia Arquette
풀어 주다: 2024-12-17 07:01:25
원래의
843명이 탐색했습니다.

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

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