Cómo usar los Modelos en CodeIgniter 4

Veamos un ejemplo de cómo usar los Modelos en CodeIgniter 4. Su definición y su llamada desde el controlador.

El controlador

Hay varios pasos importantes para el uso de los modelos. Veamos como se le indica al controlador que utilizaremos un determinado modelo, y cómo se utiliza:

<?php namespace App\Controllers;

use App\Models\EntityModel;
use CodeIgniter\Controller;

class Home extends BaseController
{
  public function index()
  {
    $entity_model = new EntityModel();
    $data = [ 'lastentities' => $entity_model->getLast(5), 'variable' => 'Funciona' ]; 
    echo view('template_header'); 
    echo view('welcome_message', $data); 
    echo view('template_footer');
  }
}
/**
-----------------------------------------------------------------------
Filename: Home.php
Location: ./app/Controllers/Home.php
-----------------------------------------------------------------------
*/

Hemos definido el controlador Home, que es el que se llama inicialmente. Éste, con el use, dice que utilizará el modelo EntityModel, y luego extiende la clase Controller.

Una vez indicamos que vamos a utilizar el modelo, hay que inicializarlo y crear el objeto con la instrucción

$entity_model = new EntityModel();

Una vez creado el objeto, ya podemos utilizarlo llamando a sus funciones:

$entity_model->getLast(5);

El model

Veamos el model, porque tien su lógica a entender:

<?php namespace App\Models;

use CodeIgniter\Model;

class EntityModel extends Model
{
  protected $table = 'entity';
  protected $primaryKey = 'identity';
  protected $returnType = 'array'; 
  protected $useSoftDeletes = false; 
  protected $allowedFields = ['category_ID', 'name', 'feed', 'description', 'logo', 'language', 'web', 'dateadded', 'visited', 'enabled']; 
  protected $useTimestamps = false; 
  protected $createdField = 'created_at'; 
  protected $updatedField = 'updated_at'; 
  protected $deletedField = 'deleted_at'; 
  protected $validationRules = []; 
  protected $validationMessages = []; 
  protected $skipValidation = false; 

  public function getEntity($identity) { 
    return $this->where("identity=". $identity)->find(); 
  } 

  public function getLast($limit) { 
    return $this->orderBy("identity",'DESC')->limit(0, $limit)->find(); 
  }
}
/**
-----------------------------------------------------------------------
Filename: EntityModel.php
Location: ./app/Model/EntityModel.php
-----------------------------------------------------------------------
*/

Debéis tener en cuenta, que al definir un modelo, tal y como véis que hemos hecho, nos da ya por realizado unas funciones determinadas. El modelo, coincide con lo que tenemos en la base de datos, y eso nos permite desde el controlador utilizar muchas funciones de consultas a base de datos, sin tener que definirlas.

Aún así, como es lógico, podemos definir nuestras funciones con las consultas que queramos. Fijaos las que hemos definido nosotros y cómo hacemos las consultas a la base de datos:

public function getLast($limit) { 
return $this->orderBy("identity",'DESC')->limit(0, $limit)->find();
}

Este artículo, sólo pretende mostrar cómo se usan, y no su forma de funcionar. Eso lo dejaremos para el próximo artículo.

Espero que os sea de utilidad el artículo Cómo usar los Modelos en CodeIgniter 4.


Deja una respuesta

Tu dirección de correo electrónico no será publicada.

*