首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在laravel 5中使用联合查询的手动分页?

在laravel 5中使用联合查询的手动分页?
EN

Stack Overflow用户
提问于 2018-08-20 21:11:35
回答 1查看 716关注 0票数 1

我正在尝试编写用于在laravel 5中使用联合的手动分页的代码。我尝试使用in this answer显示的代码,该代码展示了如何在使用联合的上下文中使用分页器。

在我的视图页面上,分页与分页数据一起显示,但分页链接不能正常工作。如果我点击任何页面链接,它都会显示主页。请告诉我我做错了什么?

控制器: UnionsController.php

代码语言:javascript
复制
<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use Illuminate\Pagination\Paginator;
use Illuminate\Support\Facades\Input;
use App\Post;
use DB;

class UnionsController extends Controller
 { 
 public function index(){
 $page = Input::get('page', 1);
 $paginate = 5;
 $first = DB::table('movieinfo')
  ->select('id','movie_name','poster','movie_name1','year','type','season','imdb')
 ->where('id', '>', 100);

$items = DB::table('tvshows')
->select('id','show_name','poster','show_name1','year','type','season','imdb')
->where('id', '>', 100)
->union($first)
       ->orderBy('id','desc')
       ->get();

$slice = array_slice($items->toArray(), $paginate * ($page - 1),  $paginate);
return $result = new \Illuminate\Pagination\LengthAwarePaginator($slice, count($items), $paginate, $page);

return view('umoviehub.index')->with('data', $result);
}  
}

查看: index.blade.php

代码语言:javascript
复制
@extends('layouts.app')

@section('content')

<div class="row mt-3 mt-3 mb-3 no-gutter" style="">
@foreach ($data as $value)
<div class="col-6 col-sm-4 col-md-3 col-lg-2 mt-3" style=" display:inline-block; height:270px;">

<img class="rounded " src="/storage/{{$value->poster}}"  width="100%" height="90%">
</div>    
@endforeach
</div>    
{{$data->links()}} 
@endsection

这是json文件:

代码语言:javascript
复制
current_page 24
data    
0   {…}
1   {…}
2   {…}
3   {…}
4   {…}
first_page_url  "/?page=1"
from    116
last_page   196
last_page_url   "/?page=196"
next_page_url   "/?page=25" 
path    "/"
per_page    5
prev_page_url   "/?page=23"
to  120
total   980
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-20 21:50:50

我找到了我的问题的答案,我补充道

代码语言:javascript
复制
Paginator::resolveCurrentPath() 

中的最后一个参数

代码语言:javascript
复制
$result = new \Illuminate\Pagination\LengthAwarePaginator($slice, count($items), $paginate, $page, ['path' => Paginator::resolveCurrentPath()]);

因为LengthAwarePaginator构造函数看起来像:

代码语言:javascript
复制
public function __construct($items, $total, $perPage, $currentPage = null, array $options = [])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51931526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档