// 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);
$DBGRoup: conexión alternativa a la BDD en lugar de la establecida por defecto.connecting$table: tabla primaria, solo aplica en los métodos básicos de CRUD$primaryKey$useAutoIncrement = true: poner a false si se ha delegado en la BDD$returnType = 'array': retorno de find(), array o object$useSoftDeletes = true;: si cierto, actualiza el campo deleted_atwithDeleted()$allowedFields: campos permitidos en los métodos básicos CRUDsave(),insert(),update()$primaryKey no ha de estar en esta lista$allowEmptyInserts: Si true lanzará excepción en caso de insert vacío$updateOnlyChanged: Si true lanzará excepción en caso de que no haya nada que actualizar$casts: forzar un cast de variables después de recuperar de la BDD$useTimestamps = false;$dateFormat = 'datetime';: valores permitidos: datetime, date, int$createdField = 'created_at';$updatedField = 'updated_at';$deletedField = 'deleted_at';$validationRules = [];$validationMessages = [];$skipValidation = false;$cleanValidationRules = true;cleanRules()$allowCallbacks = true;$beforeInsert = [];$afterInsert = [];$beforeInsertBatch = [];$afterInsertBatch = [];$beforeUpdate = [];$afterUpdate = [];$beforeUpdateBatch = [];$afterUpdateBatch = [];$beforeFind = [];$afterFind = [];$beforeDelete = [];$afterDelete = [];protected array $casts = [ 'id' => 'int', 'birthdate' => '?datetime', 'hobbies' => 'json-array', 'active' => 'int-bool', ;
implode() y explode()initialize(): se ejecuta después del constructor para personalizar.initializefind($primaryKey | [$primaryKey,$primaryKey,…]):findColumn(): retorna los valores de una coliumnafindAll(): retorna todos los valores (si hay criterios restrictivos, los aplica)findAll($limit,$offset)first(): solo retorna el primer registrowithDeleted()asArray() asObject() ← Entityinsert($data[,$bool])getInsertID()insertBatch()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 $primaryKeyTime se convierten en cadenas con el formato definido en dateFormat['datetime'],dateFormat['date'] dentro de https://codeigniter.com/user_guide/database/configuration.html#database-config-explanation-of-values save comprueban la validez de la $primaryKeyvalidateID()delete($primaryKey,[$primaryKey,$primaryKey,…])$useSoftDeletes=true, se actualiza la columna indicada en $deletedFieldpurgeDeleted()chunk(): para procesar un gran volumen de datos de manera fraccionada$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])errors()getValidationRules($options)is_uniqueis_unique[tabla.campo,id,{id} único campo para el id={id} (si es el campo $primaryKey)alpha*, stringfield_existsin_list, not_in_listmax_length, min_length, exact_lengthpermit_emptyrequired,required_with,required_withoutvalid_email,valid_emailsvalid_datevalid_json$allowedFieldsprotect(true|false)allowCallbacks(false)namespace App\Models; use CodeIgniter\Model; class UserModel extends Model { // ... }