Laravel View :: composer()有两次调用相同数据的风险吗?

时间:2016-09-24 09:30:02

标签: php laravel laravel-5

如果我的视图部分始终需要相同的数据(比如填写一些导航链接)并且我在view composer中提供了这些数据,我是否需要担心主页还需要的情况,加载,这个数据? 换句话说,如果你不小心,是否有可能最终复制数据库查询?

2 个答案:

答案 0 :(得分:1)

简短回答是肯定的,你可能要求两次使用相同的数据。

尝试添加

DB::enableQueryLog();

在任何数据库调用之前,最后,在返回视图之前,执行以下操作:

var_dump(DB::getQueryLog());

然后,您可以在查询日志中查看是否两次调用相同的数据。

答案 1 :(得分:0)

我现在理解这一点的摘要:

如果您的视图中部分需要未在其他地方使用的数据,则不会将该调用添加到控制器,而是添加到该部分上注册的作曲家。 所有这一切对你来说都是从控制器中调用,以减少那里的代码量:仅此而已。 (但如果部分被多个视图调用,则会使代码保持干燥状态。)

如果部分需要在页面的其他部分使用数据 >,您应该考虑添加一个视图编辑器,因为它不允许您删除调用这些数据,只是意味着您需要重复调​​用,因为在任何情况下都需要从控制器传递变量(由于范围未被共享,如我对上述问题的评论中所述)。