>PHP 프레임워크 >Laravel >laravel에서 기본 키 ID를 바꾸는 방법

laravel에서 기본 키 ID를 바꾸는 방법

PHPz
PHPz원래의
2023-04-21 10:02:29700검색

Laravel은 매우 인기 있는 PHP 프레임워크로, 아름다운 구문과 강력한 기능을 갖추고 있어 개발자가 효율적인 웹 애플리케이션을 쉽게 구축할 수 있습니다. Laravel에서 각 데이터베이스 테이블에는 일반적으로 "id" 필드가 기본값인 기본 키가 있어야 하며 이 필드도 자동 증가 필드여야 합니다. 그러나 일부 특정 비즈니스 시나리오에서는 "id" 필드를 기본 키로 다른 필드로 바꿔야 할 수도 있습니다. 이 경우 Laravel 공식 문서에 제공되는 기본 키 교체 방법을 사용해야 합니다.

1. 배경

Laravel에서는 기본 키 "id"를 사용하는 것이 가장 일반적인 상황이지만, 때로는 데이터베이스 테이블의 원래 디자인이 충분히 표준화되지 않거나 고유할 수 있습니다. 원본 변경 기본 키가 다른 필드로 대체됩니다. 예를 들어 일부 비즈니스 시나리오에서는 기본 "id" 필드 대신 사용자의 휴대폰 번호를 고유 식별자로 사용해야 할 수도 있습니다. 기본 "id" 필드가 기본 키로 사용되는 경우 시스템은 휴대폰 번호를 통해 사용자 개체를 신속하게 쿼리하고 고유하게 찾을 수 없습니다. 따라서 이 문제를 더 잘 해결하려면 휴대폰 번호를 기본 키로 사용해야 합니다.

Laravel에서는 Eloquent ORM의 강력한 데이터 모델을 통해 기본 키를 쉽게 교체할 수 있습니다.

2. 사용 방법

Laravel에서 제공하는 기본 키를 바꾸는 방법은 매우 간단합니다. 해당 모델에 $primaryKey 속성을 정의하고 기본 키로 바꿔야 하는 필드 이름에 할당하기만 하면 됩니다. 열쇠. 예를 들어, 사용자의 휴대폰 번호를 기본 키로 사용해야 하는 경우 사용자 모델에 다음 코드를 정의할 수 있습니다:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    protected $primaryKey = 'phone';  // 将phone字段设为主键
}

이런 식으로 Eloquent ORM을 사용하여 쿼리할 때 Laravel은 "phone"을 사용합니다. 필드는 기본적으로 기본 키로 사용됩니다. 예를 들어, 사용자 정보를 조회해야 하는 경우 다음 코드를 사용할 수 있습니다.

$user = App\User::find('13888888888');

이런 방식으로 사용자의 휴대전화 번호 "13888888888"을 통해 사용자 정보를 조회할 수 있습니다.

3. 적용 가능한 상황

실제 개발에서는 기본 키를 교체하는 경우가 드물지만 일부 특정 비즈니스 시나리오에서는 매우 실용적입니다. 예:

  1. 다국어 프로젝트: 애플리케이션이 여러 언어를 지원해야 하는 경우 일반적인 요구 사항은 특정 필드를 여러 언어의 고유 식별자로 사용하는 것입니다. 이 경우 기본 키를 바꿔야 합니다.
  2. 통합 데이터 소스: 애플리케이션이 여러 데이터 소스에서 데이터를 읽어야 하고 이러한 데이터 소스의 기본 키가 일관되지 않은 경우 이를 통합 기본 키로 바꿔야 할 수 있습니다.
  3. 기타 시나리오: 실제 개발에서는 제품 번호를 기반으로 제품 정보를 쿼리하는 등 기본 키를 교체해야 하는 다른 시나리오가 많이 있습니다.

4. 요약

Laravel은 일부 특정 비즈니스 시나리오에서 기본 키가 아닌 기본 키를 사용하는 문제를 쉽게 해결할 수 있는 매우 편리한 기본 키 교체 방법을 제공합니다. 기본 키 교체는 실제 개발에서는 상대적으로 거의 사용되지 않지만 개발자가 다양한 비즈니스 요구 사항에 따라 다른 기본 키를 선택할 수 있도록 하는 것은 애플리케이션 요구 사항의 논리에 더 잘 부합하는 동시에 애플리케이션을 개선할 수 있는 좋은 구현 솔루션입니다. 성능.

위 내용은 laravel에서 기본 키 ID를 바꾸는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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