¡Esta es una revisión vieja del documento!
Tabla de Contenidos
Eloquent ORM (Laravel)
Eloquent es un ORM (Object-Relational Mapper) incluido en Laravel para interactuar con la base de datos.
Al usar Eloquent, cada tabla de la base de datos está asociada a un model que se usa para interactuar con dicha tabla.
Generación de clases para modelos
Para generar una clase que se empleará de modelo:
php artisan make:model Product
Si añadimos la opción -m (o --migration), también se creará la migración.
Convenciones
Nombres de las tablas
Por defecto, Eloquent considerará que el nombre de la tabla al que está asociado el modelo será el nombre del modelo en snake_case y en plural.
Por ejemplo, si nuestra clase modelo es Product, la tabla será products. Si tenemos una clase modelo llamada AirTrafficController, la tabla se llamará air_traffic_controllers.
Si no seguimos esta convención, entonces debemos indicar el nombre de la tabla:
// class Product extends Model { /** * The table associated with the model. * * @var string */ protected $table = 'mis_productos';
Claves primarias
Eloquent también asuma que cada tabla tiene una columna llamada id y que es la clave primaria.
Si queremos indicar otra distinta, definimos una propiedad en el modelo:
// class Product extends Model { /** * The primary key associated with the table. * * @var string */ protected $primaryKey = 'id_producto'; }
Timestamps
Por defecto, Eloquent espera que las tablas tengan las columnas created_at y updated_at. Si no queremos que Eloquent gestione esto, debemos indicarlo en el modelo correspondiente:
// class Product extends Model { /** * Indicates if the model should be timestamped. * * @var bool */ public $timestamps = false; }
Inspeccionar modelos
php artisan model:show Flight
Consultas SQL generadas
Cuando en Laravel usamos lo siguiente:
User::get()
Eloquent lo traduce a:
SELECT * FROM users
