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;
});