Laravel Eloquent에서 데이터베이스 쿼리를 구성할 때 where 절을 사용하여 여러 조건을 지정해야 하는 시나리오가 발생할 수 있습니다. . 다중 where 호출이 일반적인 접근 방식인 반면, 고려해야 할 더 우아한 대안이 있습니다.
Laravel은 더 간결한 방법을 제공합니다. 배열을 사용하여 여러 위치 조건을 지정하려면:
$query->where([ ['column_1', '=', 'value_1'], ['column_2', '<>', 'value_2'], // ... ]);
이 접근 방식을 사용하면 여러 위치를 그룹화할 수 있습니다.
Laravel 5.3 이전에는 모두 동일한 연산자를 사용하는 경우 배열을 사용하여 여러 개의 where 조건을 지정할 수 있었습니다. (일반적으로 'and'):
$matchThese = ['field' => 'value', 'another_field' => 'another_value']; $results = User::where($matchThese)->get();
이 방법은 유사한 쿼리를 생성합니다. 대상:
SELECT * FROM users WHERE field = value AND another_field = another_value
더 복잡한 기준이 필요한 경우 where 절 내에서 하위 쿼리를 활용할 수 있습니다.
$subquery = User::where(...)->select('id')->where(...); $results = User::whereIn('id', $subquery)->get();
이 예에서 하위 쿼리는 특정 기준을 충족하는 ID 집합을 반환한 다음 기본 쿼리를 필터링하는 데 사용됩니다. 쿼리.
설명을 위해 특정 조건의 사용자를 검색하는 다음 쿼리를 고려해보세요.
$results = User::where('active', 1) ->where('verified', 1) ->where('country', 'United States') ->get();
위에 언급된 대체 접근 방식을 사용하면 쿼리는 다음과 같을 수 있습니다. 다음과 같이 작성:
// Array-based where (Laravel 5.3 and later) $conditions = [ ['active', '=', 1], ['verified', '=', 1], ['country', '=', 'United States'], ]; $results = User::where($conditions)->get(); // Array method (prior to Laravel 5.3) $matchThese = ['active' => 1, 'verified' => 1, 'country' => 'United States']; $results = User::where($matchThese)->get();
이러한 기술을 활용하면 더욱 간결하고 읽기 쉬운 쿼리를 생성하여 코드 유지 관리가 용이합니다.
위 내용은 Laravel Eloquent에서 여러 WHERE 절을 효율적으로 작성하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!