【问题标题】:Add query parameter to existing parameters with route-helper使用 route-helper 将查询参数添加到现有参数
【发布时间】:2018-06-03 21:06:13
【问题描述】:

我在 Blade 模板文件中使用路由助手 ({{ route('routename') }}) 来过滤和/或排序页面结果。

将参数附加到以前的参数的最简单方法是什么?

举个例子:

我访问页面/category1 并查看一些产品。现在我使用将 URL 更改为 /category1?sort_by=title&sort_order=asc

的排序

如果我现在使用另一个过滤器,我希望将参数附加到当前过滤器。所以/category1?sort_by=title&sort_order=asc&filter_by=year&year=2017,但结果只有/category1?filter_by=year&year=2017

我使用 route-helper 创建 URL,例如:

route('category.show', [$category, 'sort_by' => 'title', 'sort_order' => 'asc'])
route('category.show', [$category, 'filter_by' => 'year', 'year' => $year])

【问题讨论】:

    标签: laravel laravel-5 routes laravel-5.5


    【解决方案1】:

    你可能会使用类似的东西:

    $new_parameters = ['filter_by' => 'year', 'year' => $year];
    
    route('category.show', array_merge([$category], request()->all(), $new_parameters]);
    

    使用所有以前的参数并添加新参数。

    显然您可能只想使用其中的一些,而不是:

    request()->all()
    

    你可以使用:

    request()->only('sort_by', 'sort_order', 'filter_by', 'year')
    

    【讨论】:

    • 是的,我现在就是这样解决的。谢谢你的提示。我希望 laravel 有更简单的方法来做到这一点。只要没有人可以给我看这个,那就是公认的答案。 ;)
    猜你喜欢
    • 1970-01-01
    • 2019-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-27
    • 2014-11-28
    相关资源
    最近更新 更多