我在通用函数中动态加载模型,我注意到有时我想跳过加载模型,因为它引发了404错误.
如何检查模型是否存在?
就像是:
if($this->modelexists($type) {
$this->loadModel($type);
} else {
return "xxx";
}
Run Code Online (Sandbox Code Playgroud)
由于你没有指定你的版本,我将我的答案分为两部分,一部分为1.3分,一部分为2.0分.
CakePHP 1.3
loadModel()如果找不到模型,该方法将返回false,请参阅API文档.所以只检查它不会返回false,如:
if(!$this->loadModel($type)) {
return "xxx";
}
Run Code Online (Sandbox Code Playgroud)
CakePHP 2.0
如果模型类不存在,该loadModel()方法将抛出一个MissingModelException,所以只需捕获它.
请参阅有关此内容的API文档.
例:
try {
$this->loadModel($type);
} catch(MissingModelException $e) {
// Model not found!
echo $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)