Laravel 5.7 |分页-雄辩查询(关系表)
我如何使用分页,在我雄辩的查询中: PageController-方法显示: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(); 我想在页面的视图刀片页面上分页子页面-一对多-子页面关系 以
$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');