带有附加参数的Laravel路由器

时间:2018-05-05 13:03:28

标签: laravel parameters routes

我有通过此路线调用的控制器website.lrv/products/{category-url}

public function categoryProducts($uri, Request $request) { /** some code **/ }

我有一些负责订购产品的链接,我将它们直接添加到刀片模板中,如下所示:

route('client.category.products', [ 'url' => Route::current()->url, 'order' => 'article', 'by' => 'desc' ])

route('client.category.products', [ 'url' => Route::current()->url, 'order' => 'article', 'by' => 'asc' ])

订购的请求链接是: website.com/products/chargers?order=name&by=asc

现在我想添加产品过滤器。我有很多过滤器,每个过滤器可以包含很多值。问题是我不知道如何制定这样的路线: website.com/products/chargers?width=10,20,30&height=90,120,150 或类似的东西。

我需要得到像这样的请求数组:

$request = [
    ....
    filters => [
        width  => ['10','20','30'],
        height => ['90','120','150'],
    ],
    ....

];`

如果您需要其他信息,我会编辑我的问题。

2 个答案:

答案 0 :(得分:1)

您可以使用$request->query()功能中的categoryProducts来访问您要查找的阵列。

修改:还值得注意的是,您可以使用Laravel助手功能request()从您的刀片模板中访问它们,因此{{ request()->query('width') }}会返回xx其中{ {1}}。

编辑2:请注意,如果您的查询字符串在示例website.lrv/products/category?width=xx中包含逗号,则query()将只返回逗号分隔的字符串,因此您需要{{1} }以获取宽度数组

答案 1 :(得分:0)

我认为你必须像这样手动添加它们:         。路线( 'client.category.products') “?顺序=名&安培;可以通过= ASC”; 试试这个我希望它有所帮助。