名称
应用程序路由可以被赋予一个名称。如果你想要通过 RouteParser 的 urlFor() 方法以编程方式生成到特定路由的URL,这将非常有用。上述每个路由方法都返回一个 Slim\Route 对象,这个对象暴露了一个 setName() 方法。
$app->get('/hello/{name}', function ($request, $response, array $args) {
$response->getBody()->write("Hello, " . $args['name']);
return $response;
})->setName('hello');
你可以使用应用程序的 RouteParser 的 urlFor() 方法为这个命名路由生成 URL。
$routeParser = $app->getRouteCollector()->getRouteParser();
echo $routeParser->urlFor('hello', ['name' => 'Josh'], ['example' => 'name']);
// 输出 "/hello/Josh?example=name"
RouteParser 的 urlFor() 方法接受三个参数:
$routeName路由名称。可以通过$route->setName('name')设置路由的名称。路由映射方法返回一个Route实例,所以你可以在映射路由之后直接设置名称。例如:$app->get('/', function () {...})->setName('name')$data关联数组,包含路由模式占位符和替换值。$queryParams关联数组,包含要附加到生成的 URL 的查询参数。