Laravel 4 - 雄辩:是否可以在访问之前查询所有关系


Laravel 4 - Eloquent: Is it possible to query all relations before accessing them?

我正在尝试缓存数据库查询(及其关系),但是在尝试了Eloquent ORM之后,我意识到只有在访问关系时才会查询关系 - 就我而言,这是在视图中。
问题是控制器包含整个缓存过程,并且由于关系是与视图一起访问的;这些关系永远不会缓存。

所以我一直在寻找一种预查询控制器内每个关系的方法,明显的解决方案是在控制器中手动访问每个关系,但这似乎不是最佳解决方案。

TL;DR:有没有办法在实际访问它们之前查询所有(或一部分)雄辩关系?

查看急切加载。

class Bar extends Eloquent
{
    public function foos()
    {
        return $this->hasMany('Foo');
    }
}
$bars = Bar::with('foos')->get();

$bars现在包含所有柱线,所有 Foos 都预加载在 2 个 SQL 查询中。