loadModel 总是 return 真
loadModel always return true
我将以下代码放在AppController
或RecipesController
中,以便查看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 很陌生,我可以知道我错过了什么吗?
文档不正确,请参考更新的版本并查看源代码,因为即使是最新的文档也不是真正正确的(或者说它们具有误导性)。
- http://api.cakephp.org/2.5/class-Controller.html#_loadModel
- http://api.cakephp.org/2.5/source-class-Controller.html#717-746
可以看出,loadModel()
将始终 return 为真,另外 ClassRegistry::init()
,用于实际加载模型,将使用 [=12] 的实例=] 如果实际请求的模型不存在,那么只有在找不到 class 的情况下才会抛出异常。
另见 http://book.cakephp.org/2.0/en/models.html#understanding-models
另请注意,模型在实例化时不会尝试访问 table,因此只有在您实际尝试使用模型时才会抛出可能丢失的 table 异常,例如查询记录。
我将以下代码放在AppController
或RecipesController
中,以便查看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 很陌生,我可以知道我错过了什么吗?
文档不正确,请参考更新的版本并查看源代码,因为即使是最新的文档也不是真正正确的(或者说它们具有误导性)。
- http://api.cakephp.org/2.5/class-Controller.html#_loadModel
- http://api.cakephp.org/2.5/source-class-Controller.html#717-746
可以看出,loadModel()
将始终 return 为真,另外 ClassRegistry::init()
,用于实际加载模型,将使用 [=12] 的实例=] 如果实际请求的模型不存在,那么只有在找不到 class 的情况下才会抛出异常。
另见 http://book.cakephp.org/2.0/en/models.html#understanding-models
另请注意,模型在实例化时不会尝试访问 table,因此只有在您实际尝试使用模型时才会抛出可能丢失的 table 异常,例如查询记录。