【问题标题】:Retrieve URI Before the Binding of Parameters参数绑定前获取URI
【发布时间】:2018-05-08 07:48:53
【问题描述】:

在我的 Slim Framework 3 路由器中,我有以下路由:/account/{username}

在我的中间件中,当我检索请求 URI 时,它看起来类似于 /account/jordan。在我的中间件中是否可以在绑定用户名参数之前检索 URI 字符串?

在我的中间件中,我想检索我在路由中定义的字符串:/account/{username}

谢谢

【问题讨论】:

    标签: php slim middleware slim-3


    【解决方案1】:

    路由中的参数在routeInfo 中可用,这是一个请求属性,您可以将其与

    $routeInfo = $request->getAttributes('routeInfo');
    $args = $routeInfo[2];
    $username = $args['username'];
    

    routeInfo 仅在您启用设置 determineRouteBeforeAppMiddleware 时可用,如下所示:

    $settings = ['determineRouteBeforeAppMiddleware' => true];
    $app = new \Slim\App(['settings' => $settings]);
    

    【讨论】:

    • 我想要字符串文字/account/{username} 不绑定参数,谢谢
    【解决方案2】:

    您可以在 $request 对象的route 属性中找到有关路由的所有信息。 determineRouteBeforeAppMiddleware 设置必须设置为 true

    $route = $request->getAttribute('route');
    
    // do something with that information
    $name = $route->getName();
    $groups = $route->getGroups();
    $methods = $route->getMethods();
    $arguments = $route->getArguments();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-10
      • 2014-05-08
      • 2017-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-30
      • 2013-08-08
      相关资源
      最近更新 更多