Laravel Eloquent의
relation()` vs. Laravel Eloquent의 `$model->relation()`? " />
Laravel의 Eloquent ORM에서 $model->의 차이점 이해 ;relation(); 및 $model->relation이 중요합니다.
$model->relation()을 호출하면 정의된 관계 함수가 직접 호출됩니다. 모델에서 이 함수는 일반적으로 다음과 유사합니다.
<code class="php">public function distributors() { return $this->hasMany('Distributor'); }</code>
$store->distributors()를 호출하면 $this->hasMany('Distributor')의 반환 값을 얻습니다. IlluminateDatabaseEloquentRelationsHasMany.
$model->relation() 활용 시기: 이 메소드는 관계 쿼리를 실행하기 전에 추가로 맞춤화해야 할 때 유용합니다.
<code class="php">$distributors = $store->distributors()->where('priority', '>', 4)->get();</code>
$store->distributors()->get()을 사용하는 것이 더 간단한 대안이지만 결과는 동일합니다.
Laravel은 관계 결과에 속성으로 직접 액세스할 수 있는 배후 기술을 사용합니다. $model->relation을 호출하면 실제로 기존 속성에 액세스하지 않습니다. 대신 Laravel은 이 호출을 가로채서 __get()으로 라우팅합니다.
이 메서드는 궁극적으로 속성 이름('distributors')으로 getAttribute()를 호출하여 관계가 캐시되었는지('relations') 확인합니다. 정렬). 그렇지 않고 관계 메소드가 존재하는 경우 이를 로드하려고 시도합니다(getRelationshipFromMethod). 마지막으로 모델은 쿼리를 실행하는 getResults()를 통해 관계의 결과를 검색합니다.
본질적으로 $model->relation은 $model->relation()->get과 동일합니다. (), 관계 결과를 직접 반환합니다.
Eloquent를 효과적으로 사용하려면 이 차이점을 이해하는 것이 중요합니다.
위 내용은 Laravel Eloquent에서 `$model->relation()`과 `$model->relation()`을 언제 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!