src.where.data_in - gamboamartin/where GitHub Wiki
data_in
La función data_in
es una función privada que valida y extrae los datos de un array que contiene una clave (llave
) y un conjunto de valores (values
). Esta función asegura que ambas claves estén presentes y que los valores asociados sean un array. Si las validaciones son exitosas, devuelve un objeto stdClass
con los datos necesarios para construir una consulta SQL IN
.
Signatura
private function data_in(array $in): array|stdClass
Parámetros
array $in
:
Un array asociativo que debe contener las clavesllave
yvalues
.llave
: Representa el campo en la base de datos que se usará en la consulta.values
: Un array de valores que se utilizarán para generar una cláusula SQLIN
.
Retorna
array|stdClass
:
Retorna un objetostdClass
que contiene los datos validados del array$in
. En caso de error, retorna un array de error generado por$this->error->error()
.
Explicación Detallada
-
Validación de la existencia de claves:
- La función valida que el array
$in
contenga las clavesllave
yvalues
, utilizando el métodovalida_existencia_keys()
de la clasevalidacion
. - Si alguna de estas claves falta, se genera un mensaje de error y se retorna un array con el mensaje de error.
- La función valida que el array
-
Validación de que
values
sea un array:- La función verifica que el valor asociado a la clave
values
sea un array. Si no lo es, se genera un mensaje de error y se retorna un array con el mensaje de error.
- La función verifica que el valor asociado a la clave
-
Creación del objeto
stdClass
:- Si todas las validaciones son exitosas, la función crea un objeto
stdClass
que contiene las claves:llave
: El nombre del campo de la base de datos.values
: Un array con los valores que se usarán en la consulta SQLIN
.
- Si todas las validaciones son exitosas, la función crea un objeto
-
Retorno del objeto:
- La función retorna el objeto
stdClass
con los datos validados.
- La función retorna el objeto
Ejemplos
$in = [
'llave' => 'id_producto',
'values' => [1, 2, 3, 4]
];
$resultado = $this->data_in($in);
// Resultado esperado:
// Un objeto stdClass con los atributos:
// - llave: "id_producto"
// - values: [1, 2, 3, 4]
// Un array de error si ocurre algún problema.
Código de la Función
private function data_in(array $in): array|stdClass
{
$keys = array('llave','values');
$valida = $this->validacion->valida_existencia_keys( keys:$keys, registro: $in);
if(errores::$error){
return $this->error->error(mensaje: 'Error al validar not_in',data: $valida);
}
$values = $in['values'];
if(!is_array($values)){
return $this->error->error(mensaje: 'Error values debe ser un array',data: $values, es_final: true);
}
$data = new stdClass();
$data->llave = $in['llave'];
$data->values = $in['values'];
return $data;
}