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.
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:
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.