如何在laravel中显示分页?

时间:2018-02-21 10:08:53

标签: php laravel pagination laravel-5.6

我使用laravel 5.6

我试着这个文档:https://laravel.com/docs/5.6/pagination

我的控制器是这样的:

public function index()
{
    $products = $this->product->list(); 
    dd($products);
    return view('admin.product.index',compact('products'));
}

我的列表功能如下:

public function scopeList($query)
{
    return $query->orderBy('updated_at', 'desc')->paginate(20);
}

如果我dd($products);,结果如下:

enter image description here

在视图laravel上,我添加了这个:

 {{ $products->links() }}

然后我在网上查看,结果为空

为什么结果为空?

有什么不对吗?

如果图片未显示,请点击此处:https://postimg.org/image/w39usbfrv/

4 个答案:

答案 0 :(得分:2)

您的控制器代码将如下所示

$products = DB::table('products')->paginate(20);
return view('admin.product.index', ['products' => $products ]);

您的视图页面代码如下所示

   @foreach ($products as $product)
         {{ $product->product_name}}
    @endforeach
    {{ $products->links() }}

注意:添加超出限制的项目以查看分页链接

答案 1 :(得分:1)

使用paginate()功能

App\Product::paginate();

或通过查询构建器:

$products= DB::table('products')->paginate(15);

答案 2 :(得分:1)

在laravel中,可以使用两种方法进行分页

1)使用查询生成器结果

$products= DB::table('products')->paginate(15);

$products= DB::table('products')->simplePaginate(15);

如果你只需要显示简单"下一步"和"以前"在分页视图中的链接,您可以使用simplePaginate方法。

2)使用雄辩结果

$products= App\Products::paginate(15);

打印分页链接

{{ $products->links() }}

使用

自定义分页视图
{{ $paginator->links('view.name') }}

或者您可以参考此链接以获取更多自定义分页视图

Custom pagination view in Laravel 5

答案 3 :(得分:0)

那是因为,您正在为20种产品打包,而您只有11种产品。这就是为什么 只有当您要求的产品数量超过您的产品数量时,才会出现分页。对于您,您有一页和11个产品。查看顶部#total:11lastpage:1,这就是空分页的原因,因为没有任何要分页的内容。