PHP y Codeigniter: ¿cómo verifica si existe un modelo y / o no arroja un error?
bschaeffer's
Respuesta paraest pregunta - en su último ejemplo:
$this->load->model('table');
$data = $this->table->some_func();
$this->load->view('view', $data);
¿Cómo manejas esto cuando'table'
@ no existe?
try {
$this->load->model('serve_' . $model_name, 'my_model');
$this->my_model->my_fcn($prams);
// Model Exists
} catch (Exception $e) {
// Model does NOT Exist
}
Pero aún después de ejecutar esto (obviamente, el modelo no existe, pero a veces lo hará) falla con el siguiente error:
Un error fue encontrad
No se puede localizar el modelo que ha especificado: serve_forms
Recibo esta llamada de función por:
1) Obtener algunos JSON:
"model_1:{"function_name:{"pram_1":"1", "pram_2":"1"}}
2) Y convertirlo en la llamada de función:
$ this-> load-> model ('serve_'. "model_1", 'my_model');
3) Donde llamo:
$this->my_model->function_name(pram_1=1, pram_2=1);
SOLUCIÓl problema radica en el hecho de que CodeIgniter'sshow_error(...)
a función @ muestra el error y luegoexit;
... No es genial ... Así que anulé:model(...)
->my_model(..)
(obtendrá errores si lo anula) y eliminó lashow_error(...)
porque por alguna razón no puedes anularlo, extraño para Codeigniter). Luego enmy_model(...)
lo hizo lanzar una excepción
Mi opinión personal la función de llamada deberíareturn show_error("message");
donde show_error devuelveFALSE
--- eso o podrías sacar laexit;
- y hacershow_error(...)
overridable