Wal*_*ter 11 php error-handling codeigniter
bschaeffer's回答这个问题 - 在他的最后一个例子中:
$this->load->model('table');
$data = $this->table->some_func();
$this->load->view('view', $data);
Run Code Online (Sandbox Code Playgroud)
当'table'不存在时你如何处理?
try {
$this->load->model('serve_' . $model_name, 'my_model');
$this->my_model->my_fcn($prams);
// Model Exists
} catch (Exception $e) {
// Model does NOT Exist
}
Run Code Online (Sandbox Code Playgroud)
但仍然在运行之后(显然该模型不存在 - 但有时会存在)它失败并出现以下错误:
遇到了错误
无法找到您指定的模型:serve_forms
我通过以下方式调用此函数:
1)获得一些JSON:
Run Code Online (Sandbox Code Playgroud)"model_1:{"function_name:{"pram_1":"1", "pram_2":"1"}}
2)并将其转换为函数调用:
$ this-> load-> model('serve_'."model_1",'my_model');
3)我打电话给:
Run Code Online (Sandbox Code Playgroud)$this->my_model->function_name(pram_1=1, pram_2=1);
问题在于CodeIgniter的show_error(...)函数显示错误然后exit;...不酷...所以我覆盖:model(...)- > my_model(..)(如果你只是覆盖它你会得到错误)并删除show_error(...)因为某些原因你不能覆盖它 - 对Codeigniter来说很奇怪).然后在my_model(...)它中抛出异常
我的个人意见:调用函数应该
return show_error("message");在show_error返回的地方FALSE---或者你可以取出exit;- 并使其可以show_error(...)覆盖
Roc*_*mat 18
您可以查看模型文件夹中是否存在该文件.
$model = 'my_model';
if(file_exists(APPPATH."models/$model.php")){
$this->load->model($model);
$this->my_model->my_fcn($prams);
}
else{
// model doesn't exist
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12848 次 |
| 最近记录: |