En el modelo que creamos para la tabla projects definimos dos variables protegidas donde indicamos el nombre de la tabla y la llave primaria, estas variables están indicándole a nuestro modelo a dónde debe apuntar para que nos ofrezca un mapeo de esa tabla y podamos operar sobre ella.

Existen diferentes atributos que podemos seleccionar para darle más detalles según necesitemos, sin embargo, la tabla y la llave primaria son los que debe llevar el modelo siempre.

Atributos tablas Eloquent ORM

Ten en cuenta que la sintaxis debe ser respetada, esto quiere decir que deben ser variables del tipo y nombres indicados para que puedan surtir efecto.

Nombre de la tabla 🏷

Para referenciar el nombre de la tabla, debes usar esta estructura: protected $table = 'nombre_de_la_tabla';.

Llave primaria 🔑

Para indicar el nombre de la llave primaria debes indicar con la variable: protected $primaryKey = 'nombre_del_campo';.

Auto incremento ➕

Si quieres controlar el auto incremento de la llave primaria puedes controlarlo desde aquí utilizando: public $incrementing = false;.

Tipo de la llave primaria 🗝

En caso de que la llave primaria no sea un entero y estés controlando el auto incremento, debes especificar el tipo de dato: protected $keyType = 'string';.

Marcas de tiempo o Timestamps ⏱

Un detalle interesante es que Eloquent asume que tu tabla tiene los campos created_at y updated_at, así que cada vez que se inserte un valor o se modifique, buscará estos campos para asignarle los valores correspondientes, si no los tienes y no se lo indicas en el modelo, te puede generar un error o simplemente no guardar tus registros, es por eso que debes desactivarlos si no vas a contar con ellos de manera física en la base de datos.

public $timestamps = false;

En cambio, si tienes estos valores con otro nombre puedes personalizarlos y referenciarlos al inicio de la clase y de esta forma ya te los tomaría:

const CREATED_AT = 'creation_date'; const UPDATED_AT = 'last_update';

Conexión de la base de datos 🔌

Es posible que tengas varias conexiones a bases de datos, pero Eloquent tomará la que tienes definida por defecto, si por alguna razón deseas que este modelo se conecte a otra base de datos (y ya tienes configurada esa conexión), puedes indicarle a cuál apuntar: protected $connection = 'connection-name';.

Ya conoces todo lo que puedes hacer sobre un modelo para personalizar y manipular una tabla de la base de datos. Ten cuidado con usar los atributos en los momentos necesarios, si hay cambios importantes o que deban ser permanentes en la base de datos, lo mejor será que los hagas allí directamente, recuerda que en la clase anterior vimos que las migraciones podrían ayudarte a realizar estos cambios de forma controlada.

Reto 🏁

Elimina los campos de marcas de tiempo en las tablas de ciudades, compañías y usuarios, luego configura tu modelo para que no las tome al insertar valores.


¡Qué emoción 🎉! Has aprendido a configurar los atributos principales que pueden tener tus tablas desde los modelos y ahora podrás personalizar tus transacciones. En la próxima clase aprenderás a seleccionar atributos por defecto que podrás inicializar desde tus modelos con el valor que desees.

Convenciones para los modelos