¿Puedo cambiar la clave principal del modelo Eloquent?
¿Quiero establecer la clave principal, por ejemplo, en admin_idlugar de 'id'?
Sé que puedo cambiar el nombre de la tabla para un modelo como
protected $table = "admin";
¿Existe algo similar para la clave principal?

$primarykeydebería ser$primaryKey(letra K mayúscula) y no funcionará de otra manera.$primaryKey = array('key1', 'key1');github.com/laravel/framework/issues/5517#issuecomment-52996610class User extends Eloquent { protected $primarykey = 'admin_id'; }pero
class User extends Eloquent { protected $primaryKey = 'admin_id'; }observe la letra K (mayúscula) en la variable $ primaryKey
fuente
Si desea utilizar una clave compuesta (una cadena)
public $incrementing = falseDebe asegurarse de configurar, de lo contrario, laravel convertirá el campo en un entero, dando0class User extends Model { protected $primaryKey = 'my_string_key'; public $incrementing = false; }fuente
La variable de clave principal distingue entre mayúsculas y minúsculas y debe
$primaryKeyfuncionar.Ejemplo:
protected $primaryKey = 'your_primary_key_id';Ejemplo dentro de una clase de modelo:
class User extends Eloquent { protected $primaryKey = 'your_primary_key_id'; }fuente
class User extends Eloquent { protected $primaryKey = 'admin_id'; }Según la documentación de Laravel:
Eloquent también asumirá que cada tabla tiene una columna de clave primaria nombrada
id. Puede definir una$primaryKeypropiedad para anular esta convención.Además, Eloquent asume que la clave principal es un valor entero creciente, lo que significa que, de forma predeterminada, la clave principal se convertirá automáticamente en un int. Si desea utilizar una clave principal no incremental o no numérica, debe establecer la
$incrementingpropiedad pública en su modelo en falso.fuente
Para asignar una clave primaria debe ..->
class User extends Eloquent { protected $primaryKey='admin_id'; }fuente