【发布时间】:2016-04-09 14:24:33
【问题描述】:
我有一个模型Users,它有很多Pages,我想急切加载下面的方法,以便它只返回一个用户,所有页面都急切加载,我该怎么做。
$user = User::find(1);
$pages = $user->pages();
foreach($pages as $page) {
var_dump($page->name);
}
我尝试过但不起作用,它会加载所有内容:
$user = User::with('Pages')->get();
$pages = $user->pages();
【问题讨论】:
-
你必须把它作为一个属性而不是一个函数来调用
$user->pages -
哦,你还必须做 User::find(1)->with('Pages')->get();所以你只需要一个用户
-
@Bogdan
pages属于user -
还有用户
hasMany页面吗? -
@FabioAntunes 我尝试了你的建议,
User::find(1)->with('Pages')->get();改为返回一个集合
标签: php laravel eager-loading