Ejemplos controlador modelo y vista en CodeIgniter 4

Una de las cosas que más cuesta cuando pasas de CodeIgniter 3.X a CodeIgniter 4.x, es ir aprendiendo las novedades y el nuevo concepto de programación. Facilitemos estos pasos con ejemplos de controlador, modelo y vista en CodeIgniter 4.

Va destinado para los que queréis echar un vistazo rápido a un ejemplo de cada. No se entra mucho en especificar nada. Todo el tema de instalación de CodeIgniter y la estructura del Framework PHP lo encontraréis en la documentación oficial (enlace en la parte inferior).

Controlador CodeIgniter 4

Un controlador básico que carga el modelo HomeModel. Importante, el nombre del fichero debe empezar por mayúsculas, y sólo tener una. Al declarar la clase, lo mismo.

/app/Controlers/Home.php
<?php namespace App\Controllers;

use App\Models\HomeModel;
use CodeIgniter\Controller;

class Home extends BaseController
{
  public function index()
  {
    $home_model = new HomeModel();
    $data = [ 
      'testos' => $home_model->getTest(), 
      'variable' => 'Funciona'
    ]; 

    echo view('template_header'); 
    echo view('welcome_message', $data); 
    echo view('template_footer'); 
  }
}

Fijaos que en $data, cargo dos campos:

  • Cargamos 3 vistas: la cabecera, el contenido y el pie de página.
  • $variable con texto Funciona
  • $testos con un array que devuelve el modelo getTest() de una consulta a base de datos.

Luego $data, se lo paso a la vista welcome_message.

Modelo CodeIgniter 4

Un modelo básico en el que os tenéis que fijar que aquí si que podemos poner más mayúsculas en el nombre del fichero. Yo añado Model para diferenciarlo o encontrarlo mejor.

En el código veréis que declaro una variable $table, que almacena el nombre de la tabla que contiene la consulta que hago posteriormente. Ahroa, en CodeIgniter 4 lo puedes hacer automático. El ejemplo véis cómo hacer una consulta a la base de datos que coge todos los registros de la tabla test.

/app/Models/HomeModel.php
<?php namespace App\Models;

use CodeIgniter\Model;
class HomeModel extends Model
{
  protected $table = 'test';
  public function getTest()
  {
    return $this->findAll();
  }
}

Vista CodeIgniter 4

Una vista básica.

/app/Views/welcome_message.php
<?php if(!empty($testos) && is_array($testos)): ?>
  <?php foreach ($testos as $testos_item): ?>
    <h3><?= esc($testos_item["id"]); ?></h3>
    <?= esc($testos_item[""test]); ?>
  <?php endforeach ?>
<?php else : ?>
  No hay registros
<?php endif ?>

Aquí, lo único que hago es mostrar, por un lado la $variable pasada, y por otro recorrer los registros de la consulta a la tabla test de la base de datos.

Espero que estos Ejemplos de controlador modelo y vista en CodeIgniter 4 os sean de utilidad.

Debido que ahora se mezclarán los artículos de CodeIgniter 3 con los de CodeIgniter 4, los artículos serán etiquetados con #Codeginiter4


Más información