Aquesta és una revisió antiga del document


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);
  • 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.1780905441.txt.gz
  • Darrera modificació: 08/06/2026 00:57
  • per mate