PHP и Codeigniter - Как вы проверяете, существует ли модель и / или не выдаете ли ошибку?

Пример №1

bschaeffer's ответ на этот вопрос - в его последнем примере:

$this->load->model('table');
$data = $this->table->some_func();
$this->load->view('view', $data);

Как вы справляетесь с этим, когда 'table' не существует?


Пример № 2

    try {
        $this->load->model('serve_' . $model_name, 'my_model');
        $this->my_model->my_fcn($prams);

        // Model Exists

    } catch (Exception $e) {
        // Model does NOT Exist
    }

Но все же после запуска (очевидно, что модель не существует - но иногда будет) происходит сбой со следующей ошибкой:

Обнаружена ошибка

Невозможно найти указанную вами модель: serve_forms


Я получаю вызов этой функции от:

1) Получение JSON:

 "model_1: {" function_name: {"pram_1": "1"  , "детская коляска_2": "1"}}
 

2) И превращение его в вызов функции:

$ this-> load-> model ('serve_'. "Model_1", 'my_model');

3) Куда я звоню:

  $ this-> my_model-> имя_функции (pram_1 = 1, pram_2 = 1);
 

РЕШЕНИЕ

Проблема заключается в том, что функция CodeIgniter show_error (...) отображает ошибку, затем exit; ... Не круто ... Поэтому я переопределено: модель (...) -> my_model (..) (вы получите ошибки, если просто переопределите его) и удалили show_error (... ) , потому что по какой-то причине вы не можете его переопределить - странно для Codeigniter). Затем в my_model (...) выдает исключение

Мое личное мнение: вызывающая функция должна возвращать show_error ("сообщение"); где show_error возвращает FALSE --- это или вы можете удалить exit; - и сделать show_error (...) overridable

11
задан Community 23 May 2017 в 12:18
поделиться