检索当前路由
最后更新于:2022-04-01 22:34:10
# 检索当前路由
如果你需要在应用程序中获取当前的路由,你所需要做但就是,调用 HTTP 请求类的带有 `'route'` 参数的 `getAttribute` 方法,它将返回当前的路由,这个路由是 `Slim\Route` 类的实例。class.
可以使用 `getName()` 获取路由的名称,或者使用 `getMethods()`获取此路由支持的方法, etc。
Note: 如果你需要在 app 中间件中访问路由,必须在配置中将 `'determineRouteBeforeAppMiddleware'` 设置为 true。否则,`getAttribute('route')` 将会返回 null。该路由在路由中间件中永远可用。
Example:
```
use Slim\Http\Request;
use Slim\Http\Response;
use Slim\App;
$app = new App([
'settings' => [
// Only set this if you need access to route within middleware
'determineRouteBeforeAppMiddleware' => true
]
])
// routes...
$app->add(function (Request $request, Response $response, callable $next) {
$route = $request->getAttribute('route');
$name = $route->getName();
$groups = $route->getGroups();
$methods = $route->getMethods();
$arguments = $route->getArguments();
// do something with that information
return $next($request, $response);
});
```
';