Slim 框架 url 作为文件路径
Slim framework url as file path
我刚开始使用 Slim,正在尝试创建一个简单的文件托管站点。我正在尝试使用 $app->get()
通过 url 设置我的当前目录。有没有一种方法可以使 url 例如: site.com/panel/documents/text/word/etc
其中 panel
之后的所有内容都被解释为当前路径?我目前有这个代码:
$app->get('/panel/{path}', function ($request, $response) {
$path = $request->getAttribute('path');
return $path;
});
问题是当只设置一个路径时,我只能 return path
,I.E. /panel/documents
returns documents
。如果我执行诸如 /panel/documents/text
之类的操作,它将 return 一个未找到的错误。任何帮助都会很棒。谢谢!
假设您使用的是最新的 Slim v3,您可以根据文档使用占位符来实现您的目标:
http://www.slimframework.com/docs/objects/router.html#route-placeholders
寻找无限制的可选参数
$app->get('/news[/{params:.*}]', function ($request, $response, $args) {
$params = explode('/', $request->getAttribute('params'));
// $params is an array of all the optional segments
});
你的情况是:
$app->get('/panel/{path:.*}', function ($request, $response) {
$path = $request->getAttribute('path');
return $path;
});
我刚开始使用 Slim,正在尝试创建一个简单的文件托管站点。我正在尝试使用 $app->get()
通过 url 设置我的当前目录。有没有一种方法可以使 url 例如: site.com/panel/documents/text/word/etc
其中 panel
之后的所有内容都被解释为当前路径?我目前有这个代码:
$app->get('/panel/{path}', function ($request, $response) {
$path = $request->getAttribute('path');
return $path;
});
问题是当只设置一个路径时,我只能 return path
,I.E. /panel/documents
returns documents
。如果我执行诸如 /panel/documents/text
之类的操作,它将 return 一个未找到的错误。任何帮助都会很棒。谢谢!
假设您使用的是最新的 Slim v3,您可以根据文档使用占位符来实现您的目标: http://www.slimframework.com/docs/objects/router.html#route-placeholders
寻找无限制的可选参数
$app->get('/news[/{params:.*}]', function ($request, $response, $args) {
$params = explode('/', $request->getAttribute('params'));
// $params is an array of all the optional segments
});
你的情况是:
$app->get('/panel/{path:.*}', function ($request, $response) {
$path = $request->getAttribute('path');
return $path;
});