카테고리 없음

라라벨에서 일대다 다형 관계의 최신 및 최고의 모델 검색하기

janggos 2024. 1. 27. 17:06

 

다형 관계도 "latest of many" 및 "oldest of many" 메소드를 제공하여 일대다 다형 관계에서

가장 최근 및 가장 오래된 관련 모델을 검색할 수 있습니다.

 

먼저 사용자 모델에서는 두 가지 메소드를 정의하겠습니다.

하나는 최신 이미지를 검색하는 "latestImage"이고, 다른 하나는 가장 오래된 이미지를 검색하는 "oldestImage"입니다.

 

public function latestImage()
{
    return $this->morphOne(related: Image::class, name: 'imageable')->latestOfMany();
}

public function oldestImage()
{
    return $this->morphOne(related: Image::class, name: 'imageable')->oldestOfMany();
}

 

두 메소드 모두 morphOne 메소드를 사용하여 Image 모델 클래스와의 다형 일대다 관계를 정의합니다.

그런 다음 latestOfManyoldestOfMany 메소드를 체인하여 최신 및 가장 오래된 이미지를 검색합니다.

 

php artisan Tinker;

---------------------

 

// 사용자 검색
$userInstance = User::find(5);

// 최신 이미지 검색
$latestImage = $userInstance->latestImage;

// 가장 오래된 이미지 검색
$oldestImage = $userInstance->oldestImage;