> 데이터 베이스 > MySQL 튜토리얼 > Laravel 팁: whereHas 또는 whereRelation?

Laravel 팁: whereHas 또는 whereRelation?

Barbara Streisand
풀어 주다: 2025-01-17 12:02:12
원래의
117명이 탐색했습니다.

Laravel Eloquent 살펴보기: whereRelation 및 실제 응용 프로그램 탐색

이 게시물에서는 whereRelation 메서드에 초점을 맞추고 이전 whereHas 메서드와 비교하면서 Laravel의 Eloquent ORM을 살펴봅니다. 장점과 한계를 검토하여 최적의 사용법을 안내해 드리겠습니다.

시나리오: 주문이 완료된 사용자를 검색합니다. Laravel 8 이전에는 whereHas이 관련 테이블 열을 쿼리하는 표준이었습니다. Laravel 8에서는 보다 간결한 구문을 제공하는 whereRelation을 도입했습니다.

Laravel Tip: whereHas or whereRelation?

향상된 구문이 더 깔끔해졌습니다!

성능 및 한계: 일반적인 오해는 whereRelationwhereHas보다 성능이 뛰어나다는 것입니다. 그러나 분석에 따르면 둘 다 동일한 SQL 쿼리를 생성하는 것으로 나타났습니다.

whereHas 쿼리:

<code class="language-sql">select * from `users` where exists 
  (
    select * from `orders` 
    where `users`.`id` = `orders`.`created_by` 
    and `status` = ? 
    and `orders`.`deleted_at` is null
  ) 
and `users`.`deleted_at` is null</code>
로그인 후 복사
로그인 후 복사

whereRelation 쿼리:

<code class="language-sql">select * from `users` where exists 
  (
    select * from `orders` 
    where `users`.`id` = `orders`.`created_by` 
    and `status` = ? 
    and `orders`.`deleted_at` is null
  ) 
and `users`.`deleted_at` is null</code>
로그인 후 복사
로그인 후 복사

가장 큰 차이점은 기능에 있습니다. whereRelation은 관련 테이블의 단일 조건으로 제한되는 반면 whereHas은 단일 하위 쿼리 내에서 여러 조건을 지원합니다. whereRelation 각 조건에 대해 별도의 하위 쿼리를 생성하므로 여러 기준에 대해 비효율적입니다.

Laravel Tip: whereHas or whereRelation?

코드 가독성과 효율성을 위해서는 올바른 Eloquent 메소드를 선택하는 것이 중요합니다. whereHas 또는 whereRelation을 선택하기 전에 쿼리의 복잡성을 고려하세요. 즐거운 코딩하세요! ?

위 내용은 Laravel 팁: whereHas 또는 whereRelation?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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