Eloquent 모델 기본 키를 변경할 수 있습니다.
예를 들어 admin_id
'id'대신 기본 키를 설정하고 싶습니다 .
모델의 테이블 이름을 다음과 같이 변경할 수 있다는 것을 알고 있습니다.
protected $table = "admin";
기본 키와 비슷한 것이 있습니까?
답변:
예
class User extends Eloquent {
protected $primaryKey = 'admin_id';
}
$primaryKey = array('key1', 'key1');
github.com/laravel/framework/issues/5517#issuecomment-52996610
class User extends Eloquent {
protected $primarykey = 'admin_id';
}
그러나
class User extends Eloquent {
protected $primaryKey = 'admin_id';
}
$ primaryKey 변수의 문자 K (대문자)에 유의하십시오.
복합 키 (문자열)를 사용하려는 경우
당신은 당신이 설정 확인해야 public $incrementing = false
주는 laravel는 정수에 필드를 주조한다, 그렇지 않으면0
class User extends Model {
protected $primaryKey = 'my_string_key';
public $incrementing = false;
}
기본 키 변수는 대소 문자를 구분하며 $primaryKey
작동 해야합니다 .
예:
protected $primaryKey = 'your_primary_key_id';
모델 클래스 내의 예 :
class User extends Eloquent {
protected $primaryKey = 'your_primary_key_id';
}
class User extends Eloquent {
protected $primaryKey = 'admin_id';
}
Laravel 문서에 따라 :
Eloquent는 또한 각 테이블에라는 기본 키 열이 있다고 가정합니다 id
. $primaryKey
이 규칙을 재정의하기 위해 속성을 정의 할 수 있습니다 .
또한 Eloquent는 기본 키가 증가하는 정수 값이라고 가정합니다. 이는 기본적으로 기본 키가 자동으로 int로 캐스트된다는 것을 의미합니다. 비 증가 또는 숫자가 아닌 기본 키를 사용하려면 $incrementing
모델 의 공용 속성을 false로 설정해야합니다 .
$primarykey
여야하며$primaryKey
그렇지 않으면 작동하지 않습니다.