> PHP 프레임워크 > Laravel > Laravel에서 어디에 사용됩니까?

Laravel에서 어디에 사용됩니까?

WBOY
풀어 주다: 2022-06-07 16:06:06
원래의
4853명이 탐색했습니다.

laravel에서는 연관 관계를 기반으로 모델의 쿼리 결과를 필터링하고 이 모델에 대한 필터 조건을 추가할 수 있습니다. 이는 마스터 테이블의 슬레이브 테이블에 대한 데이터를 필터링하는 데 자주 사용됩니다. User::whereHas('슬레이브 테이블', function($...){$...->where(필터 조건);})->get()".

Laravel에서 어디에 사용됩니까?

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

laravel의 wherehas

with()

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

예:

user > hasMany > post

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

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();
로그인 후 복사

whereHas()

whereHas() 메소드는 has() 메소드와 기본적으로 동일하지만 다음에 대한 자체 필터링 조건을 추가할 수 있습니다. 이 모델 .

예:

user > hasMany > post

$users = User::whereHas('posts', function($q){
    $q->where('created_at', '>=', '2017-11-29');
})->get();
로그인 후 복사

【관련 추천: laravel 비디오 튜토리얼

위 내용은 Laravel에서 어디에 사용됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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