【发布时间】:2019-03-13 14:40:26
【问题描述】:
我有两个模型,Box 和 BoxLocations。 Box 与 BoxLocations 具有 hasMany 关系,BoxLocations 与 Box 具有 belongsTo 关系。
BoxLocations 还具有一个附加到模型的属性,该属性需要来自 Box 关系的单条信息。
我注意到在调用Box::with(['BoxLocations']->)all(); 时,我看到BoxLocations 模型正在重新加载Box 关系。每个BoxLocation 都会发生这种情况(50 次奇数)
laravel 是否不会跟踪 Box 已经从初始 Box::with(['BoxLocations']->)all(); 请求中加载,然后将其传递给 BelongsTo 关系?
我正在尝试优化 Web 系统,当加载所采用的属性时(令人讨厌的是,每次加载时都需要它)它会导致 50 次对已加载的同一个 Box 模型的数据库的奇数命中。
如果 laravel 不这样做 - 有没有更好的方法来实现上述目标?
【问题讨论】:
标签: laravel laravel-5.5