CakePHP - 定义的关联是否会影响性能,如果它们没有被使用?

时间:2014-12-25 20:34:58

标签: cakephp

在CakePHP项目中,在bake期间,我在模型之间放置了所有可能的关联,现在我想清理我的代码并删除那些不必要的代码,但另一方面,如果我不小心删除了正在使用的东西,什么可能导致应该修复的新错误?

所以,问题是,如果我在模型之间定义了一些关联,无论是belongsTohasMany还是hasAndBelongsToMany,这会以某种方式影响性能,考虑到我我一直在使用Containable,对于每个查询,我都指定了我需要的确切模型和字段吗?

1 个答案:

答案 0 :(得分:1)

完全没有。实际上我因此遇到了一个问题。

Cake加载由当前模型立即关联的模型。

举例:Trunk hasMany Branch hasMany Leaf

假设您正在使用Trunk模型,Cake将加载Trunk和Branch模型。加载模型只会对数据库进行描述调用,然后缓存该数据库。在->find电话的范围之外,不会对数据库执行任何搜索。

这给我带来了一个问题。如果您有一个表单并想要同时添加Trunk,Branch和Leaf,则formHelper不会知道Leaf中字段的格式,因为模型未加载。在这种情况下,请使用$this->loadModel手动加载模型。