我正在尝试缓存数据库查询(及其关系),但是在尝试了Eloquent ORM之后,我意识到只有在访问关系时才会查询关系 - 就我而言,这是在视图中。
问题是控制器包含整个缓存过程,并且由于关系是与视图一起访问的;这些关系永远不会缓存。
所以我一直在寻找一种预查询控制器内每个关系的方法,明显的解决方案是在控制器中手动访问每个关系,但这似乎不是最佳解决方案。
TL;DR:有没有办法在实际访问它们之前查询所有(或一部分)雄辩关系?
查看急切加载。
class Bar extends Eloquent
{
public function foos()
{
return $this->hasMany('Foo');
}
}
$bars = Bar::with('foos')->get();
$bars现在包含所有柱线,所有 Foos 都预加载在 2 个 SQL 查询中。