无法使用路由在 Laravel 中获取带有编码“/”的获取参数
Unable to fetch get parameter with encoded '/' in Laravel using route
我是 Laravel 的新手,正在处理现有代码。
我想以 URL/val1/val2/val3 的格式在 url 中传递一些 值.
如果所有值都具有正常字符串或数字
,则一切正常
但如果任何值具有特殊字符,如 slash / 或 \,则显示错误。
例如。
工作 :- URL/abc/pqr/xys
但如果 val3 = 22/06 ;url 是 URL/val1/val2/22/06 错误显示 404 未找到
如果我使用 javaScript 的函数 encodeURIComponent()
对 val3 进行编码
val3=22%2F06 和 url 变为 URL/val1/val2/22%2F06 显示 找不到对象!
// My current route web.php is:-
Route::get('/export/{name}/{status}/{search}', 'ReportController@export')->name('export');
//routes.php
Route::get('view/{slashData?}', 'ExampleController@getData')
->where('slashData', '(.*)');
您的路由只接受 3 个参数。但是你传递了四个参数。
Route::get('/export/{name}/{status}/{search}', 'ReportController@export')->name('export');
您必须更改您的 val3=22-06。不要使用 / 作为参数的值。
例如。
URL/val1/val2/22-06
您需要在这种情况下使用正则表达式:
Route::get('/export/{name}/{status}/{search}', 'ReportController@export')->name('export')->where(['search' => "[\w\/]+"]);
我是 Laravel 的新手,正在处理现有代码。
我想以 URL/val1/val2/val3 的格式在 url 中传递一些 值.
如果所有值都具有正常字符串或数字
,则一切正常但如果任何值具有特殊字符,如 slash / 或 \,则显示错误。
例如。 工作 :- URL/abc/pqr/xys
但如果 val3 = 22/06 ;url 是 URL/val1/val2/22/06 错误显示 404 未找到
如果我使用 javaScript 的函数 encodeURIComponent()
对 val3 进行编码val3=22%2F06 和 url 变为 URL/val1/val2/22%2F06 显示 找不到对象!
// My current route web.php is:-
Route::get('/export/{name}/{status}/{search}', 'ReportController@export')->name('export');
//routes.php
Route::get('view/{slashData?}', 'ExampleController@getData')
->where('slashData', '(.*)');
您的路由只接受 3 个参数。但是你传递了四个参数。
Route::get('/export/{name}/{status}/{search}', 'ReportController@export')->name('export');
您必须更改您的 val3=22-06。不要使用 / 作为参数的值。
例如。
URL/val1/val2/22-06
您需要在这种情况下使用正则表达式:
Route::get('/export/{name}/{status}/{search}', 'ReportController@export')->name('export')->where(['search' => "[\w\/]+"]);