我使用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);
,结果如下:
在视图laravel上,我添加了这个:
{{ $products->links() }}
然后我在网上查看,结果为空
为什么结果为空?
有什么不对吗?
如果图片未显示,请点击此处:https://postimg.org/image/w39usbfrv/
答案 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') }}
或者您可以参考此链接以获取更多自定义分页视图
答案 3 :(得分:0)
那是因为,您正在为20种产品打包,而您只有11种产品。这就是为什么
只有当您要求的产品数量超过您的产品数量时,才会出现分页。对于您,您有一页和11个产品。查看顶部#total:11
,lastpage:1
,这就是空分页的原因,因为没有任何要分页的内容。