CodeIgniter v4 Model

  • conexión automática a BDD
  • métodos CRUD básicos
  • permite extender de otros modelos
// Create a new class manually.
$userModel = new \App\Models\UserModel();
 
// Create a shared instance of the model.
$userModel = model('UserModel');
// or
$userModel = model('App\Models\UserModel');
// or
$userModel = model(\App\Models\UserModel::class);
 
// Create a new class with the model() function.
$userModel = model('UserModel', false);
 
// Create shared instance with a supplied database connection.
$db        = db_connect('custom');
$userModel = model('UserModel', true, $db);
  • initialize(): se ejecuta después del constructor para personalizar.initialize
  • find($primaryKey | [$primaryKey,$primaryKey,…]):
    • retorna la fila (o filas) de las primaryKey indicadas (array si más de una)
    • si no se especifica valor, retorna todas las filas.
    • findColumn(): retorna los valores de una coliumna
    • findAll(): retorna todos los valores (si hay criterios restrictivos, los aplica)
      • findAll($limit,$offset)
    • first(): solo retorna el primer registro
    • withDeleted()
    • asArray() asObject() ← Entity
  • insert($data[,$bool])
  • update($primaryKey,$data)
  • save($data): decide si hacer insert() o update() en función de si el array contiene un campo equivalente a la de la $primaryKey
  • los métodos save comprueban la validez de la $primaryKey
  • delete($primaryKey,[$primaryKey,$primaryKey,…])
    • con $useSoftDeletes=true, se actualiza la columna indicada en $deletedField
    • purgeDeleted()
  • chunk(): para procesar un gran volumen de datos de manera fraccionada
  • verificar antes de guardar que cumple los requisitos indicados
  • usa la propiedad $validationRules (y complementa con $validationMessages:
        protected $validationRules = [
            'username'     => 'required|max_length[30]|alpha_numeric_space|min_length[3]',
            'email'        => 'required|max_length[254]|valid_email|is_unique[users.email]',
            'password'     => 'required|max_length[255]|min_length[8]',
            'pass_confirm' => 'required_with[password]|max_length[255]|matches[password]',
        ];
        protected $validationMessages = [
            'email' => [
                'is_unique' => 'Sorry. That email has already been taken. Please choose another.',
            ],
        ];
  • setValidationRule($campo,$reglas) y su complemento setValidationMessage($campo,$array)
  • setValidationRules([$campo⇒$reglas,$campo⇒$reglas]) y su complemente setValidationMessages([$campo⇒$array])
  • si no valida, el Modelo retorna false. Se pueden recuperar los errores con el método errors()
  • getValidationRules($options)
    • $options: array con 2 claves, except o only para recoger las reglas de validación indicadas
  • $allowedFields
    • protect(true|false)
namespace App\Models;
 
use CodeIgniter\Model;
 
class UserModel extends Model
{
    // ...
}
  • development/php/codeigniter/v4/model.txt
  • Darrera modificació: 08/06/2026 01:31
  • per mate