> PHP 프레임워크 > Laravel > Laravel에서 with 메소드를 사용하는 방법

Laravel에서 with 메소드를 사용하는 방법

WBOY
풀어 주다: 2022-01-13 16:48:57
원래의
8294명이 탐색했습니다.

laravel에서는 with() 메서드가 "eager loading"으로 사용됩니다. 이는 laravel이 기본 모델과 함께 정확한 관계를 미리 로드한다는 의미입니다. 이 메서드를 사용하면 "1+N" 쿼리 문제를 완화할 수 있습니다. 문제를 해결하기 위해 "1+1" 쿼리를 사용합니다.

Laravel에서 with 메소드를 사용하는 방법

이 기사의 운영 환경: Windows 10 시스템, Laravel 버전 6, Dell G3 컴퓨터.

laravel에서 with 메소드를 사용하는 방법

with()

with() 메소드는 "thirst loading"에 사용되는데, 이는 주로 laravel이 메인 모델의 정확한 관계를 미리 로드한다는 것을 의미합니다. 이는 모델의 모든 관계를 추가하려는 경우 매우 유용합니다. "즉시 로드"는 1+N 쿼리 문제를 완화하므로 문제를 해결하는 데 1+1 쿼리만 필요하므로 쿼리 속도가 크게 향상됩니다.

예:

user > hasMany > post
$users = User::with('posts')->get();
foreach($users as $user){
   $users->posts; // posts已经被加载了,没有增加DB查询
}
로그인 후 복사

Extension:

has()

has() 메소드는 연관 관계를 기반으로 모델의 쿼리 결과를 필터링하는 것이므로 해당 기능은 where 조건과 매우 유사합니다. has('post')만 사용한다면 최소한 하나의 post 연결이 있는 이 모델만 가져오고 싶다는 의미입니다.

예:

user > hasMany > post
//User至少有一条post的关联关系
$users = User::has('post')->get();
로그인 후 복사

"."을 사용하여 중첩된 has 문을 구성할 수도 있습니다.

예:

user > hasMany > post
$user = User::has('post.votes', '>', '3')->get();
로그인 후 복사

관련 권장 사항: 최근 5개의 Laravel 비디오 튜토리얼

위 내용은 Laravel에서 with 메소드를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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