从YAML读取PHP中的参数以处理Symfony2中的路由

时间:2015-08-06 03:33:48

标签: php symfony routing yaml

我有一个PHP文件来处理Symfony2项目中的路由并且它运行良好,但是,现在我正在尝试添加一个参数来将它从app / config / routing.yaml发送到我的php文件

#app/config/routing.yaml
app:
    host:     "{ _locale }.*"
    defaults: { _locale: es}
    resource: "@AppBundle/config/routing.php"
    type:     php
    requirements: { _locale: en|es }

fos_user:
    resource: "@FOSUserBundle/Resources/config/routing/all.xml"

我的疑问是如何从php路由文件中读取_locale。我尝试使用$req= new \Symfony\Component\HttpFoundation\Request(); $req->getLocale(),但它总是返回相同的

1 个答案:

答案 0 :(得分:0)

您无法创建新的Request实例。您需要Symfony2自己创建的Request实例。

public function anyAction(Request $request)
{
    echo $request->getLocale();
}

或者您可以尝试控制器操作参数。

public function anyAction($_locale)
{
}

您的要求也有误 - requirements: {_locale: en|es }而不是requirements: {locale: en|es }