【问题标题】:Eager Loading with Pagination渴望加载分页
【发布时间】:2019-02-12 09:29:40
【问题描述】:

我有一个 group 实例,我想通过分页进行预加载:

public function show(Group $group)
{
    $group = $group->with('members);
    return$ group     
}

我想用members 分页返回group

【问题讨论】:

  • 您要对哪个页面进行分页?组或成员?
  • 我想给成员分页,但我已经想通了@G.Baghashvili

标签: laravel eloquent laravel-pagination


【解决方案1】:

使用setRelation() 和延迟加载:

public function show(Group $group)
{
    return $group->setRelation('members', $group->members()->paginate(5));
}

【讨论】:

  • mark the answer as accepted。这会向其他用户显示问题已解决。
  • 这种急切的加载关系究竟是如何进行的?我在这里没有看到任何证据。
  • @Stephan-v 不会,但在这种情况下,延迟加载和急切加载会产生相同的结果。无法以 OP 尝试的方式使用急切加载。
【解决方案2】:

您可以这样做,但不建议这样做,因为对预先加载的关系使用分页会产生两个重复的查询

public function show(Group $group)
{
     $group = $group->with(['members' => function($query) {
        $query->paginate(24);
    }]);

     return $group;
}

【讨论】:

    猜你喜欢
    • 2013-05-06
    • 1970-01-01
    • 2011-08-24
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    相关资源
    最近更新 更多