php - 拉拉维尔 : How to specify the number of items in pagination via route variable

标签 php laravel-5 pagination

我希望更改通过分页显示的项目数量,通过以下路由在 Controller 中指定,以设置分页每个页面上显示的产品数量。

举个例子,如果用户输入http://example.com/first-category?numProducts=99,他们将看到 View 'pages.category' 每页分页有 99 个项目。我认为我的路线出了问题,但需要一点帮助。

路线:

//First returns single product
Route::get('/products/{cat}/{permalink}', 'ShopController@show')->name('shop.product');
//Second gets all items in category group
Route::get('/products/{cat}', 'ShopController@subIndex')->name('shop.cat');
//Third to pass variable prodNum to ShopController for paginate($prodNum)
Route::get('/products/{cat}?numProducts={prodNum}', 'ShopController@subIndexMore')

ShopController.php

Controller 看起来像这样:

// Shows all items in category, set to 10 items per page via paginate(10)
public function subIndex($cat) {
  $category = Category::where('permalink', $cat)->first();
  $products = ProductGroup::where('category', $category->id)->orderBy('id', 'asc')->paginate(10);
  return view('pages.category',compact('products', 'category'));
}
// Shows all items in category, paginate($prodNum) determines how many items in each page
public function subIndexMore($cat, $prodNum) {
  $category = Category::where('permalink', $cat)->first();
  $products = ProductGroup::where('category', $category->id)->orderBy('id', 'asc')->paginate($prodNum);
  return view('pages.category',compact('products', 'category'));
}

最佳答案

您不需要在路由文件中指定查询字符串参数。您可以将它们作为请求的输入进行访问。

public function subIndex(Request $request, $cat)
{
  $num_items = $request->input('numProducts');
  $category = Category::where('permalink', $cat)->first();
  $products = ProductGroup::where('category', $category->id)->orderBy('id', 'asc')->paginate($num_items);
  return view('pages.category',compact('products', 'category'));
}

请记住包括:

use Illuminate\Http\Request;

关于php - 拉拉维尔 : How to specify the number of items in pagination via route variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48749796/

相关文章:

php - 无效的链接: Cannot load presenter 'Post' , class 'App\Presenters\PostPresenter' was not found

laravel - 路由参数的构造函数注入(inject)

javascript - 简化分页页面列表的生成

php - 由于 htaccess 规则,分页不起作用

php - 缩略图分页的想法

php - Jquery Ajax 无法与 Laravel 分页正常工作

javascript - 如何使用 jquery 更改连接到动态表单中的选择更改的值?

javascript - 为什么 onsubmit 事件处理程序在 php 解释器中不起作用

php - laravel 5 在哪里处理 ValidationException?

php - 找不到盒子 'laravel/homestead'