loadModel 总是 return 真

loadModel always return true

我将以下代码放在AppControllerRecipesController中,以便查看loadModel的return值。根据 loadModel API,当找到单个模型并创建实例时,它应该 return 为真。

然而,我都得到了 1,我认为它是 true,尽管 safasfasfafafafas 不存在。

$this->log($this->loadModel('safasfasfafafafas'));   // random string
$this->log($this->loadModel('Recipe'));  // exist in my model

我对 cakephp 很陌生,我可以知道我错过了什么吗?

文档不正确,请参考更新的版本并查看源代码,因为即使是最新的文档也不是真正正确的(或者说它们具有误导性)。

可以看出,loadModel() 将始终 return 为真,另外 ClassRegistry::init(),用于实际加载模型,将使用 [=12] 的实例=] 如果实际请求的模型不存在,那么只有在找不到 class 的情况下才会抛出异常。

另见 http://book.cakephp.org/2.0/en/models.html#understanding-models

另请注意,模型在实例化时不会尝试访问 table,因此只有在您实际尝试使用模型时才会抛出可能丢失的 table 异常,例如查询记录。