细长的框架url作为文件路径

时间:2016-09-07 14:19:10

标签: php rest url routing url-routing

我是使用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之类的操作,则会返回未找到的错误。任何帮助都会很棒。谢谢!

1 个答案:

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