带斜杠的 Slim 3 参数
Slim 3 parameter with slash
我有一个用 Slim 3 构建的 API,路由定义为
$app->get('/usage/{protocol}', function(Request $request, Response $response, array $args) {
$protocol = !empty($args['protocol']) ? sanitize($args['protocol']) : null;
// do something...
});
我的问题是 protocol
参数可以多次包含斜杠字符 /
即:2022-123/A/B/C
.
当我请求 http://example.com/api/usage/2022-123/A/B/C
时,出现以下错误:
GET http://example.com/api/usage/2022-123/A/B/C
resulted in a 404 Not Found
response.
如何解决此问题,使其将整个文本视为一个参数?
试试这个
$app->get('/usage[/{protocol:.*}]', function(Request $request, Response $response, array $args) {
$protocol = $request->getAttribute('protocol')
// do something...
});
我有一个用 Slim 3 构建的 API,路由定义为
$app->get('/usage/{protocol}', function(Request $request, Response $response, array $args) {
$protocol = !empty($args['protocol']) ? sanitize($args['protocol']) : null;
// do something...
});
我的问题是 protocol
参数可以多次包含斜杠字符 /
即:2022-123/A/B/C
.
当我请求 http://example.com/api/usage/2022-123/A/B/C
时,出现以下错误:
GET
http://example.com/api/usage/2022-123/A/B/C
resulted in a404 Not Found
response.
如何解决此问题,使其将整个文本视为一个参数?
试试这个
$app->get('/usage[/{protocol:.*}]', function(Request $request, Response $response, array $args) {
$protocol = $request->getAttribute('protocol')
// do something...
});