> 데이터 베이스 > MySQL 튜토리얼 > Laravel 5.2: 문자열 기본 키가 0으로 변환되는 이유는 무엇입니까?

Laravel 5.2: 문자열 기본 키가 0으로 변환되는 이유는 무엇입니까?

Linda Hamilton
풀어 주다: 2024-11-26 01:09:10
원래의
179명이 탐색했습니다.

Laravel 5.2: Why is my String Primary Key Converting to 0?

Laravel 5.2: 사용자 정의 기본 키 변환 문제

Laravel 5.2의 Eloquent ORM에서 문자열을 사용자 정의 기본 키로 활용하는 경우, 에서 검색할 때 키 값이 0으로 변환되는 문제가 발생할 수 있습니다. 데이터베이스.

설명:

Laravel은 데이터베이스 열 유형과 일치하도록 속성 값을 자동으로 캐스팅합니다. 기본적으로 자동 증가 기본 키는 정수로 간주됩니다. 하지만 이 경우 문자열을 기본 키로 사용하므로 값이 잘못 변환됩니다.

해결책:

이 문제를 해결하려면, 기본 키가 문자열이고 자동으로 증가되지 않도록 명시적으로 지정해야 합니다. 이렇게 하려면 모델에 다음 코드를 추가하세요.

protected $primaryKey = 'your_key_name';
public $incrementing = false;
로그인 후 복사

'your_key_name'을 기본 키 열의 실제 이름으로 바꿔야 합니다.

추가 설명:

Laravel 6.0 이상에서는 $keyType 속성을 다음과 같이 설정해야 합니다. 'string':

protected $keyType = 'string';
로그인 후 복사

이는 기본 키가 문자열임을 명시적으로 지정하고 잠재적인 유형 변환을 방지합니다.

이 솔루션을 구현하면 문자열을 사용자 정의로 사용할 수 있습니다. 변환 문제 없이 Laravel Eloquent 모델의 기본 키를 사용할 수 있습니다.

위 내용은 Laravel 5.2: 문자열 기본 키가 0으로 변환되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿