如果我在控制器中检索模型/集合并在以下事件中进行相同的调用,Laravel是否会从控制器重用模型/集合或通过第二次数据库调用获取数据?
提前致谢!
编辑: 我指的是这样的电话:
User::where('user_id', 42)->first();
答案 0 :(得分:1)
如果你$user = User::where('user_id', 42)->first();
然后在后面的代码中重用$user
,然后它将重用它,因为你使用的是变量。
但每次拨打User::where('user_id', 42)->first();
之类的电话时,都会直接触发新的数据库通话。所以,你的问题的答案是否定的,它不会重复使用'它,除非你使用变量,否则不要第二次进行雄辩。
既然你问这个问题,你可能会想到其他一些事情;一个是缓存,另一个是急切加载,这与将相关模型加载到构成调用的实际模型上的情况略有不同;还有另一个我们的Auth :: user(),但这不是你上面给出的用户::所以我假设你并不是那个意思。