无论如何在Symfony2项目的路由文件中添加自定义键/值对,然后在控制器中读取它?
例如:
AcmeDemoBundle_Default_hello:
pattern: /hello/{name}
defaults: { _controller: AcmeDemoBundle:Default:hello }
SomeCustomKey: CustomValue
Run Code Online (Sandbox Code Playgroud)
我想使用这些键/值对为我的一个项目添加一些动态行为.例如,我可以使用自定义键/值对读取所有路径并将其显示给用户,以便在动态菜单中使用.
我认为使用选项是一个更好的主意,因为它们没有添加到路径参数中.您还可以在控制器中访问这些选项.
在routing.yml文件中:
demo_page:
path: /
defaults: { _controller: DemoBundle:Default:index }
options:
key: value
Run Code Online (Sandbox Code Playgroud)
在您的控制器中,您可以访问以下选项:
/**
* @var $router \Symfony\Bundle\FrameworkBundle\Routing\Router
*/
$router = $this->get('router');
$routeCollection = $router->getRouteCollection();
/**
* @var $route \Symfony\Component\Routing\Route
*/
$route = $routeCollection->get($this->getRequest()->get('_route'));
$allOptions = $route->getOptions();
$specificOption = $route->getOption('key');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1673 次 |
| 最近记录: |