gpt4 book ai didi

PHP 和 Codeigniter - 如何检查模型是否存在和/或不抛出错误?

转载 作者:可可西里 更新时间:2023-10-31 22:09:34 25 4
gpt4 key购买 nike

示例#1

bschaefferthis 的回答问题 - 在他的最后一个例子中:

$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
}

但是在运行这个之后(显然模型不存在 - 但有时会)它仍然失败并出现以下错误:

An Error Was Encountered

Unable to locate the model you have specified: serve_forms


我通过以下方式获得此函数调用:

1) 获取一些 JSON:

"model_1:{"function_name:{"pram_1":"1", "pram_2":"1"}}

2) 并将其转换为函数调用:

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

3) 我打电话的地方:

$this->my_model->function_name(pram_1=1, pram_2=1);

解决方案

问题在于 CodeIgniter 的 show_error(...) 函数显示错误然后 exit; ... 不酷 ... 所以我覆盖了: model(...) -> my_model(..)(如果你只是覆盖它,你会得到错误)并删除了 show_error(... ) 因为出于某种原因你不能覆盖它——对于 Codeigniter 来说很奇怪)。然后在 my_model(...) 中让它抛出异常

My personal opinion: the calling function should return
show_error("message");
where show_error returns FALSE --- that or you could take out the exit; - and make show_error(...) overridable

最佳答案

您可以查看模型文件夹中是否存在该文件。

$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
}

关于PHP 和 Codeigniter - 如何检查模型是否存在和/或不抛出错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7017810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com