Posso mudar a chave primária do modelo Eloquent.
Quero definir a chave primária, por exemplo, em admin_id
vez de 'id'?
Eu sei que posso mudar o nome da tabela para um modelo como
protected $table = "admin";
Existe algo semelhante para a chave primária?
$primarykey
deve ser$primaryKey
(letra K maiúscula) e não funcionará de outra forma.$primaryKey = array('key1', 'key1');
github.com/laravel/framework/issues/5517#issuecomment-52996610mas
observe a letra K (maiúscula) na variável $ primaryKey
fonte
Se você quiser usar uma chave composta (uma string)
Você precisa ter certeza de definir,
public $incrementing = false
caso contrário, laravel lançará o campo para um inteiro, dando0
fonte
A variável de chave primária faz distinção entre maiúsculas e minúsculas e deve
$primaryKey
funcionar.Exemplo:
protected $primaryKey = 'your_primary_key_id';
Exemplo dentro de uma classe Model:
fonte
De acordo com a documentação do Laravel:
O Eloquent também assumirá que cada tabela possui uma coluna de chave primária chamada
id
. Você pode definir uma$primaryKey
propriedade para substituir esta convenção.Além disso, o Eloquent assume que a chave primária é um valor inteiro incremental, o que significa que por padrão a chave primária será convertida para um int automaticamente. Se desejar usar uma chave primária não incremental ou não numérica, você deve definir a
$incrementing
propriedade pública em seu modelo como falsa.fonte
Para atribuir uma chave primária você deve ..->
fonte