我顯示的是從Algolia獲得的分頁結果。我在我的控制器中有兩個查詢,我分頁。這就是我從控制器將數據發送到視圖:Laravel 5.3 - 單個頁面上的多個分頁不起作用
public function index(Request $request)
{
if(!$request->q && !$request->page){
return redirect('/');
}
$videos = Video::search($request->q)->paginate(1);
$videosCollection = $videos->getCollection();
return fractal()
->collection($videosCollection)
->parseIncludes(['player'])
->transformWith(new VideoTransformer)
->paginateWith(new IlluminatePaginatorAdapter($videos))
->toArray();
}
所以後來當我搜索例如用於'rene'
的結果顯示在URL http://videoapp.app/search?q=rene
而且,我得到看起來像這樣的數據:
{
data: [
{
id: 46,
description: null,
views: 0,
created_at: "1 month ago",
player: {
data: {
id: 34,
image: "15889ca47e557c12240142_1013305815416003_5199651181367705874_n.jpg",
first_name: "Bruno",
last_name: "Hendricks"
}
}
}
],
meta: {
pagination: {
total: 2,
count: 1,
per_page: 1,
current_page: 1,
total_pages: 2,
links: {
next: "http://videoapp.app/search?query=rene&page=2"
}
}
}
}
但是爲下一頁創建的分頁鏈接是"http://videoapp.app/search?query=rene&page=2"
,如果我點擊它,元數據會發生變化,我得到整個表的結果,而不僅僅是我的第一個查詢的結果是在本例中爲'rene'
。如果我另一方面在瀏覽器http://videoapp.app/search?q=rene&page=2
中輸入網址,那麼它的工作原理應該是這樣。 我如何更改這些生成的鏈接,以便它能夠正常工作?
我也試圖與SO,另一個例子再次沒有爲我工作:
控制器:
if(!$request->q && !$request->page){
return redirect('/');
}
$players = Player::search($request->q)
->paginate(1);
$videos = Video::search($request->q)
->paginate(1);
$videos->setPageName('videos');
查看
{{ $videos->appends(array_except(Request::only('q'), 'page'))->links() }}
和
{{ $players->appends(array_except(Request::only('q'), 'videos'))->links() }}
我也tr從答案IED中建議:
public function index(Request $request)
{
$q = $request->q;
$videosPage = $request->vpage;
$playersPage = $request->ppage;
if (! $request->q) {
return redirect('/');
}
$players = Player::search($q)
->paginate(1, 'ppage')
->appends(['q' => $q, 'vpage' => $videosPage]);
$videos = Video::search($q)
->paginate(1, 'vpage')
->appends(['q' => $q, 'ppage' => $playersPage]);
return view('search.index', [
'players' => $players,
'videos' => $videos,
]);
}
但也沒有工作,當我點擊一個鏈接,供玩家會回到視頻搜索結果的例子。似乎無法找到這個問題的任何解決方案?
這個問題已經在這裏回答https:// stackoverflow.com。com/questions/24086269/laravel-multiple-pagination-in-one-page –