>백엔드 개발 >PHP 튜토리얼 >Laravel 5 모델에서 복합 기본 키를 구현하는 방법은 무엇입니까?

Laravel 5 모델에서 복합 기본 키를 구현하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-01 09:17:14289검색

How to Implement Composite Primary Keys in Laravel 5 Models?

Laravel 5 모델의 복합 기본 키

많은 데이터베이스는 여러 열이 각 행의 고유 식별자를 형성하는 복합 기본 키를 사용합니다. 이러한 경우 Laravel의 기본 기본 키인 "id"가 항상 충분하지 않을 수 있습니다.

복합 키 구현

Laravel 5 모델에서 복합 기본 키를 정의하려면 다음과 같은 PHP 특성을 사용할 수 있습니다. 다음:

trait HasCompositePrimaryKey
{
    ...
    // ... Additional code from the answer ...
    ...
}

이 특성을 모델에 포함하고 $primaryKey 속성을 합성을 나타내는 배열로 설정합니다. 키:

class MyModel extends Eloquent
{
    use Traits\HasCompositePrimaryKey;

    protected $primaryKey = ['key1', 'key2'];
    ...
}

Laravel 수정

특성은 특정 Laravel 메서드를 재정의하여 복합 키를 처리합니다.

  • getIncrementing(): 반환 기본이 증가하지 않음을 나타내려면 false입니다. keys.
  • setKeysForSaveQuery(): 저장 작업을 위한 복합 키를 기반으로 쿼리 필터를 구축합니다.
  • find(): 사용자 정의 메서드 레코드 검색을 위한 키 값 배열을 허용합니다.

주의 사항 및 제한 사항

이 솔루션은 복합 키에 대한 해결 방법을 제공하지만 몇 가지 제한 사항이 있습니다.

  • Laravel 프레임워크의 수정이 필요하며 이는 모든 시나리오에서 바람직하지 않을 수 있습니다.
  • 관계, Eager 로딩 및 기타 고급 기능이 포함된 복잡한 사용 사례에는 적합하지 않을 수 있습니다.
  • find() 메서드에는 다음이 필요할 수 있습니다. 다양한 데이터 유형 및 인덱스 구조를 수용하기 위한 조정.

대체 접근 방식

특성 솔루션이 적합하지 않은 것으로 판명되면 사용자 정의 기본 키를 사용하거나 복합 키를 관리하기 위한 다른 방법을 고려하십시오. 자세한 지침은 Laravel 문서 및 온라인 리소스를 참조하세요.

위 내용은 Laravel 5 모델에서 복합 기본 키를 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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