0

假设我有这些模型——帖子、类别、用户。帖子属于类别和用户。

在我的 PostsController 中的某个操作中,我想从类别或用户表中获取数据,我可以使用以下方法之一

1) public $uses = array('Post', 'Category', 'User') and use Category model like
$this->Category->find('all'); everywhere in that controller

2)  $this->Post->Category ->find('all');

3)  $this->loadModel('Category '), than use 
    $this->Category->find('all') in that action

所以,我的问题是其中哪一个将具有最佳性能,为什么?也许对于小型应用程序它不会有任何明显的效果,但是如果项目很大并且应该在同一个控制器中使用数十个模型并且每一个小的性能改进都非常重要怎么办。

谢谢

4

1 回答 1

2

如果您已经在模型中拥有关联,请使用该关联(#2)。这是有道理的,因为这些模型很可能已经加载(如果您没有缓存)。

否则,使用该loadModel功能。这样,您将仅在需要时加载模型。无论哪种方式,除非您的构造函数中有一些主要工作正在进行(您不应该),否则它真的没有那么重要。

于 2013-08-18T06:04:45.423 回答