我有两种方法:
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(通过表单)分页无法正常工作。它似乎根本不起作用。第一页很好但如果我点击下一步,它什么都不返回。空白的表。我不知道为什么。
答案 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');