Laravel / Lumen路由可选的url查询参数

问题描述 投票:0回答:1

在流明中,我必须将url第一段作为$ source属性,并将所有其他部分作为$ path。这可以通过以下方法解决:

Route::get('/{source}/{path:.*}', 'HomeController@index');

这样,/ database / path / to / folder URL将被解析为$source = 'database';$path = 'path/to/folder';,太好了!

但是当我也有可选的查询参数时,例如:/database/path/to/folder?attr1=foo&attr2=bar

如何定义将整个查询部分作为路由参数获取在属性中?

laravel parameters routing lumen
1个回答
1
投票

由于它们是可选的,并且它是一个查询字符串,因此您不必在路由注册中定义它们。

您可以在生成网址时简单地传递它们。例如:

Route::get('/{source}/{path:.*}', 'HomeController@index')->name('home');

然后您可以做:

route('home', [
    'source' => 'database',
    'path' => 'path/to/folder',
    'attr1' => 'foo',
    'attr2' => 'bar'
]);

输出将是:

http://example.com/database/path/to/folder?attr1=foo&attr2=bar
© www.soinside.com 2019 - 2024. All rights reserved.