PHP: Laravel 如何预加载查找方法

PHP: Laravel how to eager load find method

我有一个模型 Users,它有很多 Pages,我想预先加载下面的方法,这样它 returns 只有一个用户可以预先加载所有页面,我该怎么做。

$user = User::find(1);
$pages = $user->pages();
foreach($pages as $page) {
  var_dump($page->name);
}

我尝试过但没有用的方法,它会加载所有内容:

$user = User::with('Pages')->get();
$pages = $user->pages();

去掉括号。

$user = User::find(1);
$pages = $user->pages;
foreach($pages as $page) {
    var_dump($page->name);
}

如果您想预先加载它,请使用 with 方法并传递正确的参数,这将是您的关系方法的名称:

$user = User::with('pages')->find(1);
foreach($user->pages as $page) {
    var_dump($page->name);
}