administrador.base.orm.modelo_base.genera_modelo.21.17.0 - gamboamartin/administrador GitHub Wiki
genera_modelo
Esta función pública se encarga de generar una instancia de un modelo de datos a partir de su nombre, opcionalmente especificando un namespace.
Signatura
final public function genera_modelo(string $modelo, string $namespace_model = ''):array|modelo
Parámetros
-
$modelo
(string): El nombre del modelo de datos. -
$namespace_model
(string, opcional): El namespace del modelo de datos.
Retorna
- Tipo:
array|modelo
- Descripción: Un objeto del tipo modelo correspondiente, o un array que contiene un mensaje de error si ocurre algún problema durante el proceso.
Explicación Detallada
Generación del nombre del modelo: Se llama a la función genera_name_modelo() para obtener el nombre completo del modelo, incluyendo el namespace si se proporciona. Si ocurre un error durante este proceso, se devuelve un mensaje de error.
Validación del modelo: Se llama a la función valida_data_modelo() para validar el nombre del modelo. Si ocurre un error durante este proceso, se devuelve un mensaje de error.
Creación de la instancia del modelo: Se crea una nueva instancia del modelo utilizando el nombre generado anteriormente y se devuelve.
Retorno de datos o mensaje de error: Si el proceso se realiza correctamente, se devuelve la instancia del modelo. De lo contrario, se devuelve un array que contiene un mensaje de error.
Ejemplos
// Ejemplo: Generar instancia de modelo
$modelo = "Usuario";
$namespace_model = "App\\Models";
$resultado_modelo = genera_modelo($modelo, $namespace_model);
if (is_object($resultado_modelo)) {
// Usar la instancia del modelo
echo "Instancia del modelo generada.";
} else {
// Manejar el mensaje de error
echo "Hubo un error al generar el modelo: ";
var_dump($resultado_modelo);
}
Código de la Función
final public function genera_modelo(string $modelo, string $namespace_model = ''):array|modelo{
$modelo = $this->genera_name_modelo(modelo: $modelo,namespace_model: $namespace_model);
if(errores::$error){
return $this->error->error(mensaje: "Error al maquetar name modelo",data: $modelo);
}
$valida = $this->validacion->valida_data_modelo(name_modelo: $modelo);
if(errores::$error){
return $this->error->error(mensaje: "Error al validar modelo",data: $valida);
}
return new $modelo($this->link);
}