laravel-4 - primary - updateorcreate laravel
Cambiar la clave primaria por defecto en Eloquent (6)
La variable de la clave principal $primaryKey
mayúsculas y minúsculas y debe ser $primaryKey
para que funcione.
Ejemplo:
protected $primaryKey = ''your_primary_key_id'';
Ejemplo dentro de una clase de modelo:
class User extends Eloquent {
protected $primaryKey = ''your_primary_key_id'';
}
¿Puedo cambiar la clave primaria del modelo elocuente?
Quiero configurar la clave principal, por ejemplo, admin_id
lugar de ''id''?
Sé que puedo cambiar el nombre de la tabla para el modelo como
protected $table = "admin";
¿Hay algo similar para la clave primaria?
Para asignar una clave primaria debes ...->
class User extends Eloquent {
protected $primaryKey=''admin_id'';
}
Sí
class User extends Eloquent {
protected $primaryKey = ''admin_id'';
}
Si desea utilizar una clave compuesta (una cadena)
Debe asegurarse de establecer public $incrementing = false
contrario, laravel convertirá el campo en un entero, dando 0
class User extends Model {
protected $primaryKey = ''my_string_key'';
public $timestamp = false;
}
class User extends Eloquent {
protected $primaryKey = ''admin_id'';
}
Según la documentación de Laravel:
Elocuente también asumirá que cada tabla tiene una columna de clave primaria llamada id
. Puede definir una propiedad $primaryKey
para anular esta convención.
Además, Eloquent asume que la clave principal es un valor entero incremental, lo que significa que, de forma predeterminada, la clave principal se convertirá en un int automáticamente. Si desea utilizar una clave principal no incremental o no numérica, debe establecer la propiedad public $incrementing
en su modelo en falso.
class User extends Eloquent {
protected $primarykey = ''admin_id'';
}
pero
class User extends Eloquent {
protected $primaryKey = ''admin_id'';
}
anote la letra K (mayúscula) en la variable $ primaryKey