【问题标题】:Slim 3 - Slash as a part of route parameterSlim 3 - 斜线作为路由参数的一部分
【发布时间】:2017-01-05 07:59:41
【问题描述】:

我需要使用可以包含斜杠 / 的参数来编写 URL。例如经典的/hello/{username} 路由。默认情况下,/hello/Fabien 将匹配此路由,但不匹配 /hello/Fabien/Kris。我想问你如何在 Slim 3 框架中做到这一点。

【问题讨论】:

  • 通过添加另一个占位符/hello/{username}/{name}?
  • @revo 这是不可能的,因为可以有 2 个或多个斜杠,我需要将 /hello/ 之后的所有内容存储到一个变量中,在这种情况下,参数

标签: php regex slim slim-3


【解决方案1】:

你也可以使用$args:

$app->get('/hello[/{route:.*}]', function ($request, $response, $args) {
    $route = $args['route']; // Whole Route
    $params = explode('/', $route); // Route split
});

【讨论】:

    【解决方案2】:

    Route placeholders:

    对于“无限”可选参数,您可以这样做:

    $app->get('/hello[/{params:.*}]', function ($request, $response, $args) {
        $params = explode('/', $request->getAttribute('params'));
    
        // $params is an array of all the optional segments
    });
    

    【讨论】:

    • 谢谢,这正是我需要的。
    猜你喜欢
    • 1970-01-01
    • 2013-06-29
    • 1970-01-01
    • 2016-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-30
    • 1970-01-01
    相关资源
    最近更新 更多