administrador.base.orm.columnas.campos_no_upd - gamboamartin/administrador GitHub Wiki
campos_no_upd
La función campos_no_upd
toma dos arrays como parámetros: $campos_no_upd
y $registro
. Su objetivo es eliminar del array $registro
las claves que se encuentran en el array $campos_no_upd
.
Signatura
final public function campos_no_upd(array $campos_no_upd, array $registro): array
Parámetros
-
array $campos_no_upd
:
Un array que contiene los nombres de los campos que no deben ser actualizados en el array$registro
. -
array $registro
:
El array que representa un registro, donde cada clave es el nombre de un campo y cada valor es el valor asociado a ese campo. La función elimina las claves presentes en$campos_no_upd
de este array si existen.
Retorna
array
:
Devuelve el array$registro
modificado, sin las claves que se encontraban en$campos_no_upd
.
Explicación Detallada
-
Iteración y limpieza:
- La función itera sobre cada elemento de
$campos_no_upd
. - En cada iteración, el valor de
$campo_no_upd
es limpiado contrim()
para eliminar espacios en blanco al inicio y al final.
- La función itera sobre cada elemento de
-
Validaciones:
- Si
$campo_no_upd
es una cadena vacía (''
), se genera un error mediante$this->error->error()
indicando que el campo no debe estar vacío. Se provee un mensaje de corrección ($fix
) para guiar al desarrollador. - Si
$campo_no_upd
es un valor numérico (is_numeric($campo_no_upd)
), se genera un error similar, indicando que el campo debe ser un texto.
- Si
-
Eliminación de campos:
- Si
$campo_no_upd
existe como clave en$registro
, se elimina dicha clave del array$registro
utilizandounset()
.
- Si
-
Retorno:
- Una vez procesados todos los campos, la función devuelve el array
$registro
resultante.
- Una vez procesados todos los campos, la función devuelve el array
Ejemplos
$campos_no_upd = ['status', 'fecha_creacion'];
$registro = [
'id' => 1,
'status' => 'activo',
'nombre' => 'John Doe',
'fecha_creacion' => '2023-08-29'
];
$registro_actualizado = $this->campos_no_upd($campos_no_upd, $registro);
// Resultado:
// $registro_actualizado = [
// 'id' => 1,
// 'nombre' => 'John Doe'
// ];
Código de la Función
final public function campos_no_upd(array $campos_no_upd, array $registro): array
{
foreach ($campos_no_upd as $campo_no_upd){
$campo_no_upd = trim($campo_no_upd);
if($campo_no_upd === ''){
$fix = 'Se tiene que mandar un campo del modelo indicado';
$fix .= ' $campo_no_upd[] debe ser un campo ejemplo $campo_no_upd[] = status';
return $this->error->error(mensaje: 'Error $campo_no_upd esta vacio', data: $campo_no_upd,
es_final: true, fix: $fix);
}
if(is_numeric($campo_no_upd)){
$fix = 'Se tiene que mandar un campo del modelo indicado';
$fix .= ' $campo_no_upd[] debe ser un campo ejemplo $campo_no_upd[] = status';
return $this->error->error(mensaje: 'Error $campo_no_upd debe ser un texto', data: $campo_no_upd,
es_final: true, fix: $fix);
}
if(array_key_exists($campo_no_upd, $registro)){
unset($registro[$campo_no_upd]);
}
}
return $registro;
}