Laravel 5.7 |分页-雄辩查询(关系表)

Laravel 5.7 |分页-雄辩查询(关系表),laravel,pagination,Laravel,Pagination,我如何使用分页,在我雄辩的查询中: PageController-方法显示: $page = Page::where('slug', $slug)->with(['subpages'=>function($q) { $q->where('visible', 1)->orderBy('order', 'asc')->paginate(9); }])->first(); 我想在页面的视图刀片页面上分页子页面-一对多-子页面关系 以

我如何使用分页,在我雄辩的查询中:

PageController-方法显示:

$page = Page::where('slug', $slug)->with(['subpages'=>function($q) {
                $q->where('visible', 1)->orderBy('order', 'asc')->paginate(9);
}])->first();
我想在页面的视图刀片页面上分页子页面-一对多-子页面关系

以下是我的show.blade.php视图的一部分:

{{ $page->subpages->links() }}
错误:

Method Illuminate\Database\Eloquent\Collection::links does not exist.
编辑:

全功能显示:

public function show(PageRepository $pageRepo, $slug){
        $page = Page::where('slug', $slug)->with(['subpages'=>function($q) {
            $q->where('visible', 1)->orderBy('order', 'asc');
        }])->first();
        $subpages = $page->subpages()->paginate(2);
        $sidebar = Navbar::where('type','sidebar')->orderBy('order')->with(['pages'])->get();
        return view('pages.page.show', [
            "page" => $page,
            "subpages" => $subpages,
            "sidebar" => $sidebar,
   ]);
}
视图:


如果您的目标是根据我看到的对关系进行分页,但您正在查询父模型。这就是问题所在。您必须完全更改逻辑,因为子查询不映射Laravel模型内的关系。它只是用作检索该模型的条件

您的查询应该如下所示:

$page=page::其中'slug',$slug->with['subpage'=>函数$q{ $q->where'visible',1->orderBy'order',asc'/->分页9;这不是必需的 }]->第一,; 既然有了父模型,就可以对关系执行新的查询,并且必须在那里调用paginate方法:

我不认为在您的刀片视图中这样做是一种好的做法:

{{$page->subpage->paginate9->links} 但最好实现一个新变量:

// Previous code that retrieves the page

$subpages = $page->subpages()->paginate(9);

return response()->view('your.blade.view', compact('page', 'subpages');

现在,您可以在视图中使用subpages变量,该变量包含分页结果

从我所看到的,您没有定义链接是什么,除非它是模型中的一个方法。但是,如果不是的话,这只是laravel随机选择的。方法Illumb\Database\Eloquent\Collection::pagiante不存在。对不起,我已经更新了我的代码。。。我忘记了链接中的括号页数是正确的,但在每个页面上我都有相同的所有元素。如果没有控制器和视图的完整代码,很难说发生了什么…您也可以手动设置从请求检索的页面。看一看这本书
// Previous code that retrieves the page

$subpages = $page->subpages()->paginate(9);

return response()->view('your.blade.view', compact('page', 'subpages');