我在玩 Yii 并且在 Yii Eager Loading与延迟加载数据库查询方面遇到了一些问题。例如比较两种方式:
$comment = Comment::model()->with(array('issue'=>array('condition'=>'project_ id='.$projectId)))->findAll();
2a.
$comment = Comment::model()->findAll
2b。得到问题:
$issue = $comment->issues
(假设我们在 Comment 模型中声明了“问题”关系)。
我不确定第一种方法有什么优点。据我了解,第一个代码将仅返回 Comment 但也运行 get Issue 查询(如 2b 代码)。但是,正如我所见(但不确定是否有更好的方法来利用“急切加载”),如果我想在第一个代码中获得评论问题,我还必须运行以下代码:
3.
$comment ->issues
如果是这样,作为我的客人,我们必须使用 Eager 加载方法运行 2 个查询,因此它比“延迟加载”需要更长的时间,因为它运行了两次“获取问题查询”(我们运行第一个代码时的第一次) ,第二次我们运行第三个代码)。
那么,您能否验证我的观点,或者如果它错了,您能否告诉我如何从利用其效率的 Eager Loading 方法中获取所有问题。