La capa de modelos en el patrón de diseño MVC (Modelo-Vista-Controlador) es la capa que se encarga de la lógica de negocio y la comunicación con la base de datos. Es decir, es la capa que realiza las operaciones CRUD (Crear, Leer, Actualizar y Eliminar) en una base de datos, usualmente un modelo gobierna una tabla en la base de datos. Veamos las propiedades más comunes que podemos aplicar sobre nuestros modelos en CodeIgniter 4 y para qué sirven.
$table
Especifica la tabla de la base de datos con la que trabaja este modelo.
$primaryKey
Este es el nombre de la columna que identifica de manera única los registros en esta tabla. Esto no necesariamente tiene que coincidir con la clave principal que se especifica en la base de datos; se usa con métodos como find() para saber con qué columna hacer coincidir el valor especificado.
$useAutoIncrement
Especifica si la tabla usa una función de incremento automático para $primaryKey. Si se establece en falso, eres responsable de proporcionar el valor de la clave principal para cada registro de la tabla.
$returnType
Esta configuración permite definir el tipo de datos que se devuelven. Los valores válidos son 'array' (el valor predeterminado), 'objeto' o el nombre completo de una clase que se puede usar con el método getCustomResultObject() del objeto Result.
$useSoftDeletes
Si es verdadero, cualquier llamada al método delete() establecerá delete_at en la base de datos, en lugar de eliminar la fila. Esto puede preservar los datos cuando se puede hacer referencia a ellos en otro lugar, o puede mantener una "papelera de reciclaje" de objetos que se pueden restaurar, o incluso simplemente preservarlos como parte de un seguimiento de seguridad. Si es verdadero, los métodos find*() solo devolverán filas no eliminadas, a menos que se llame al método withDeleted() antes de llamar al método find*().
$allowedFields
Este array debe actualizarse con los nombres de campo que se pueden configurar durante los métodos save(), insert() o update(). Cualquier nombre de campo que no sea este, será descartado. Lo cual ayuda a proteger la integridad de las columnas que no queremos que la aplicación pueda interactuar.
$useTimestamps
Este valor booleano determina si la fecha actual se agrega automáticamente a todas las inserciones y actualizaciones. Si es verdadero, establecerá la hora actual en el formato especificado por $dateFormat. Esto requiere que la tabla tenga columnas denominadas created_at y updated_at en el tipo de datos adecuado.
$createdField
Especifica qué campo de base de datos usar para la marca de tiempo de creación de registro de datos.
$updatedField
Especifica qué campo de la base de datos debe usarse para mantener la marca de tiempo de actualización del registro de datos.
Estos son algunas de las configuraciones más comunes y puedes ver la lista completa aquí:
https://codeigniter.com/user_guide/models/model.html#id6
Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter