>백엔드 개발 >PHP 튜토리얼 >Laravel에 관련 모델이 있는지 확인하는 방법은 무엇입니까?

Laravel에 관련 모델이 있는지 확인하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-05 14:12:02675검색

How to Check if a Related Model Exists in Laravel?

Laravel에서 관련 모델의 존재 확인

Laravel에서 Eloquent 모델은 데이터베이스 엔터티를 나타내고 해당 엔터티 간의 관계를 관리하기 위한 편리한 방법을 제공합니다. 그러나 관계 작업을 할 때는 추가 작업을 수행하기 전에 관련 모델이 존재하는지 확인해야 할 수도 있습니다.

다음 코드를 고려하세요.

<code class="php">public function option() {
    return $this->hasOne('RepairOption', 'repair_item_id');
}

public function setOptionArrayAttribute($values)
{
    $this->option->update($values);
}</code>

이 시나리오에서는 다른 모델과 일대일 관계를 갖는 모델. 이 모델을 생성하거나 업데이트할 때 관련 모델이 존재하는지 확인하여 업데이트할지 생성할지 결정해야 합니다.

해결책 1(Laravel 7.2 ):

Laravel 7.2 이상에서는 관련 모델이 존재하는지 확인하기 위해 관계 객체에 presents() 메소드를 사용할 수 있습니다:

<code class="php">$model = RepairItem::find($id);
if (Input::has('option')) {
    if ($model->option()->exists()) {
        // Option exists, update it
    } else {
        // Option does not exist, create it
    }
}</code>

해결책 2(Laravel 7.2 이전):

Laravel 7.2 이전 버전에서는 관련 모델이 존재하는지 확인하기 위해 관계 객체에 count() 메서드를 사용할 수 있습니다.

<code class="php">if (count($model->option)) {
    // Option exists
} else {
    // Option does not exist
}</code>

참고: 이 방법은 관계가 단일 값 관계(예: hasOne, ownTo)인 경우에만 작동합니다. 다대다 또는 기타 컬렉션 기반 관계의 경우 관계 컬렉션에 count() 또는 isNotEmpty()와 같은 메서드를 사용하여 관련 모델이 포함되어 있는지 확인할 수 있습니다.

위 내용은 Laravel에 관련 모델이 있는지 확인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.