我是使用Slim的新手,我正在尝试创建一个简单的文件托管网站。我正在尝试使用$app->get()
通过网址设置我当前的目录。有没有办法让我有一个网址,例如:site.com/panel/documents/text/word/etc
,其中panel
之后的所有内容都被解释为当前路径?我目前有这个代码:
$app->get('/panel/{path}', function ($request, $response) {
$path = $request->getAttribute('path');
return $path;
});
问题是,当只设置一条路径时,我只能返回path
,I.E。 /panel/documents
返回documents
。如果我执行/panel/documents/text
之类的操作,则会返回未找到的错误。任何帮助都会很棒。谢谢!
答案 0 :(得分:1)
假设您使用的是最新的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;
});