在流明中,我必须将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
如何定义将整个查询部分作为路由参数获取在属性中?
由于它们是可选的,并且它是一个查询字符串,因此您不必在路由注册中定义它们。
您可以在生成网址时简单地传递它们。例如:
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