获取请求后,分页不起作用[Laravel 5.3]

时间:2016-12-19 22:10:58

标签: php laravel pagination

我有两种方法:

public function specific_shop(Request $request)
{
    $categories = Category::all();
    $products = Product::where('shop_id', $request->id)->orderBy('quantity', 'asc')->paginate(10);
    return view('product.show', compact('products', 'categories'));

}
public function specific_category(Request $request)
{
    $products = Product::where('category_id', $request->id)->orderBy('quantity', 'asc')->paginate(10);
    return view('product.specific', compact('products'));
}

第一个是给我特定商店的产品(从选择输入中选择后),第二个是给我特定类别的产品。

Route::resource('product', 'ProductController');
Route::get('/product/show/shop/specific', 'ProductController@specific_shop');
Route::get('/product/show/category/specific', 'ProductController@specific_category');

当我点击/ product /并且它显示所有产品(未指定)时,分页工作,但如果我点击/ product / show / shop / specific(通过表单)分页无法正常工作。它似乎根本不起作用。第一页很好但如果我点击下一步,它什么都不返回。空白的表。我不知道为什么。

1 个答案:

答案 0 :(得分:1)

这样做

 $id = $request->id;
return view('product.specific', compact('products','id'));

然后在您的视图中而不是

{{ $products->links() }}

这样做

{{ $products->appends(['id' => $id])->links() }}

问题:我想,id字段没有被传递到第二页。

最好将资源路线置于底部以避免任何麻烦

Route::get('/product/show/shop/specific', 'ProductController@specific_shop');
Route::get('/product/show/category/specific', 'ProductController@specific_category');
Route::resource('product', 'ProductController');