Crear modelos en CodeIgniter 4

Ahora vamos a ver cómo podemos crear un componente fundamental en nuestro MVC, que viene siendo el componente que nos permite trabajar con la capa de los datos, que no puede ser otro que el modelo, el modelo simplemente es una clase, al igual que ocurre con otros frameworks como Laravel que extiende de Model, para el modelo, a diferencia de la versión 3, tenemos que definir varios atributos para poder emplearla o que sean funcionales.

Recuerda que la función primaria de un modelo es conectar un modelo con una tabla en la base de datos.

Tenemos que indicar los campos insertables es decir, aquellos campos que nosotros vamos a emplear para administrar dicha tabla vinculada a la tabla; en otras palabras las columnas; por ejemplo, vamos a a partir que tenemos una tabla como la siguiente:

Tabla en MySQL

Por lo tanto, queremos administrar todas las columnas de la tabla de la base de datos anterior para nuestro modelo, y siguiendo lo comentado anteriormente:

También tenemos que indicar la propiedad llamada table, para indicar con qué tabla hace match nuestro modelo con que tabla en la base de datos configurada:

class MovieModel extends Model {    protected $table = 'movies';    protected $primaryKey = 'id';    protected $allowedFields = ['title', 'description','category_id']; }

Estas por nombrar las propiedades más importantes que puedes emplear para definir el modelo, puedes ver el resto de las propiedades que puedes definir para el modelo en la documentación oficial; algunas propiedades muy interesantes serían por ejemplo.

$returnType

Aquí podemos indicar si deseamos que por defecto la data que podemos obtener realizando consultas tipo select a la base de datos, los devuelva en una estructura tipo array ('array') o tipo objeto ('object').

$createdField

Aquí podemos indicar el nombre del campo para la fecha de creación, y el mismo será establecido cuando creamos un nuevo registro.

$validationRules

Con esta propiedad podemos indicar las reglas de validación sobre las columnas de nuestro modelo que se emplearán en la fase de creación y actualización.

Otros datos sobre los modelos

  • En los modelos va nuestra lógica de negocios, componentes como funciones específicas que queramos emplear dentro de la app, como obtener todos o un conjunto de registros son simplemente funciones que creamos para cada proceso; por ejemplo, una función para obtener todos los registros.
  • Cuando trabajamos con las consultas, existen funciones que podemos emplear de gratis (ya las provee el framework) para trabajar con los registros; por ejemplo, el método llamado find, para obtener un registro, o el first, insertar, save, update cuyos nombres se auto explican o nos indican qué función realizan.
  • Los modelos son un componente que hacen juego con las migraciones, ya que es lo usual que exista una correspondencia entre uno a uno entre las tablas, migraciones y modelos, en el caso de CodeIgniter 4, las migraciones son un archivo y composición aparte que la del modelo, es decir, son independientes, a diferencia de otros framework como Django o Flask, cuya composición de las migraciones se generar a partir de los modelos.

- Andrés Cruz

In english

Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz En Udemy

Acepto recibir anuncios de interes sobre este Blog.

!Cursos desde!

10$

En Udemy

Quedan 3d 08:12!


Udemy

!Cursos desde!

4$

En Academia

Ver los cursos

!Libros desde!

1$

Ver los libros
¡Hazte afiliado en Gumroad!