administrador.base.orm.where.init_params_sql - gamboamartin/administrador GitHub Wiki
init_params_sql
La función init_params_sql
se encarga de inicializar los parámetros necesarios para construir una consulta SQL, validando primero la cláusula where
basada en un conjunto de filtros y luego asegurándose de que los parámetros estándar (offset
, group_by
, order
, limit
) estén presentes en el objeto $complemento
. Si se produce algún error durante el ajuste de la cláusula where
o la inicialización de los parámetros, la función devuelve un array de error con detalles del problema.
Signatura
final public function init_params_sql(stdClass $complemento, array $keys_data_filter): array|stdClass
Parámetros
stdClass $complemento
- Tipo:
stdClass
- Descripción: El objeto que contiene la cláusula
where
y otros filtros que deben ser validados y ajustados. La función también inicializa parámetros adicionales necesarios para construir consultas SQL dinámicas.
array $keys_data_filter
- Tipo:
array
- Descripción: Un array de claves que representan los filtros que deben ser validados en el objeto
$complemento
. Estas claves se utilizan para verificar si la cláusulawhere
está correctamente respaldada por filtros con contenido.
Retorno
array|stdClass
- Tipo:
array
ostdClass
- Descripción:
- Si la operación es exitosa, devuelve el objeto
$complemento
con la cláusulawhere
ajustada y los parámetros SQL (offset
,group_by
,order
,limit
) inicializados. - Si ocurre algún error durante la validación de la cláusula
where
o la inicialización de los parámetros, devuelve un array con un mensaje de error y los detalles correspondientes.
- Si la operación es exitosa, devuelve el objeto
Explicación Detallada
-
Validación y ajuste de la cláusula
where
:- La función llama a
where_filtro
para ajustar y validar la cláusulawhere
en función de los filtros especificados en$keys_data_filter
. Siwhere
está presente, al menos uno de los filtros debe tener contenido. - Si ocurre un error en esta validación, la función devuelve un array con los detalles del error.
$complemento_w = $this->where_filtro(complemento: $complemento, key_data_filter: $keys_data_filter); if (errores::$error) { return $this->error->error(mensaje: 'Error ajustar where', data: $complemento_w); }
- La función llama a
-
Inicialización de los parámetros SQL:
- Después de ajustar la cláusula
where
, la función llama aajusta_params
(de la claseinicializacion
) para asegurarse de que los parámetros estándar (offset
,group_by
,order
,limit
) estén presentes en el objeto$complemento
. - Si ocurre un error durante la inicialización de estos parámetros, la función devuelve un array con un mensaje de error.
$complemento_r = (new inicializacion())->ajusta_params(complemento: $complemento_w); if (errores::$error) { return $this->error->error(mensaje: 'Error al inicializar params', data: $complemento_r); }
- Después de ajustar la cláusula
-
Retorno del objeto ajustado:
- Si ambas operaciones (ajuste de
where
e inicialización de parámetros) son exitosas, la función devuelve el objeto$complemento
con los ajustes necesarios.
return $complemento_r;
- Si ambas operaciones (ajuste de
Ejemplos
$complemento = new stdClass();
$complemento->where = "where id = 1";
$complemento->nombre = "Juan";
$complemento->edad = " "; // vacío
$keys_data_filter = ['nombre', 'edad'];
$resultado = $this->init_params_sql($complemento, $keys_data_filter);
// Resultado esperado:
// $complemento->where ajustado y parámetros SQL inicializados (offset, group_by, order, limit)
Código de la Función
final public function init_params_sql(stdClass $complemento, array $keys_data_filter): array|stdClass
{
$complemento_w = $this->where_filtro(complemento: $complemento,key_data_filter: $keys_data_filter);
if(errores::$error){
return $this->error->error(mensaje: 'Error ajustar where',data: $complemento_w);
}
$complemento_r = (new inicializacion())->ajusta_params(complemento: $complemento_w);
if(errores::$error){
return $this->error->error(mensaje:'Error al inicializar params',data:$complemento_r);
}
return $complemento_r;
}