为了为我创建一个导航webinterface我想从我的bundle的路由配置中获取一个变量。我在 mybundle / Resources / config / routing.yml 中定义了可用的页面。
mybundle_homepage:
pattern: /{_locale}/{branch}/{page}
defaults: { _controller: mybundle:mycontroller:index, _locale: de, branch: x.x.x, page: start }
requirements:
_locale: de|en
page: start|functions|events|constants|styleguide
现在我看一下Symfony2 YAML Parser,我必须提供一个文件路径静态方法解析:http://symfony.com/doc/2.0/reference/YAML.html
mycontroller.php
use Symfony\Component\Yaml\Yaml;
class mycontroller extends Controller
{
public function indexAction($_locale, $branch, $page)
{
$routing = Yaml::parse('../Resources/config/routing.yml');
var_dump($routing);
}
}
我以为我可以这样做,因为文件夹hirarchy看起来像那样:
- mybundle
- 控制器
- mycontroller.php
- Rescources
- 配置
- 的routing.yml
但它不起作用。从路由文件中获取requirements.page数组的任何想法或其他方法?
此致,Ben
答案 0 :(得分:6)
您应该能够在识别DI容器的类中访问路由器服务。所以,你可以这样写:
$routes = $this->container->get('router')->getRouteCollection();
$route = $routes->get('my_route_name');
print_r($route->getRequirements());