Laravel - 手动分页 'option' 查询参数有什么作用?

Laravel - what does the manual paginations 'option' query parameter do?

我在谷歌搜索时发现的手动分页工作正常,但我只是想知道选项参数中的 'query' => $request->query() 有什么作用?

$total = count($form_list);
$per_page = 10;
$current_page = $request->input('page') ?? 1;
$starting_point = ($current_page * $per_page) - $per_page;

$form_list = array_slice($form_list, $starting_point, $per_page, true);

$form_list = new Paginator($form_list, $total, $per_page, $current_page, [
    'path' => $request->url(),
    'query' => $request->query(),
]);

不带任何参数调用 ->query() returns 查询字符串中的所有值作为关联数组。

假设您有这样的查询字符串:

https://example.com/path/to/page?name=ferret&color=purple

您可以通过如下方式检索 name 的值:

$request->query('name')

其中 returns ferret。您还可以传递第二个参数作为默认值,因此如果您调用:

$request->query('size', 'Medium')

查询字符串中不存在,您将得到 'Medium' 而不是 null

如果省略所有参数,您将收到一个如下所示的关联数组:

query = [
  'name' => 'ferret',
  'color' => 'purple',
]

分页本身不需要 options 参数,但您的数据集查询需要。如果你没有传递 query 参数,当你点击其中一个分页 url 时,你会得到这样的东西:

https://example.com/path/to/page?page=2&per_page=5

有时,这工作得很好,会给我们想要的东西,但有时,我们需要那些额外的查询字符串来获得正确的数据集。我们传入查询中的所有值以获得如下内容:

https://example.com/path/to/page?page=2&per_page=5&name=ferret&color=purple

这将过滤所有那些紫色雪貂的数据集。至于您是否需要它的问题,由您决定这对您的代码是否必不可少,或者您是否可以只使用分页。

祝你好运!希望对您有所帮助。