繁体   English   中英

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

[英]Reading parameter in PHP from YAML to handle routing in Symfony2

我有一个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() $req= new \\Symfony\\Component\\HttpFoundation\\Request(); $req->getLocale()但总是返回相同的值

您不能创建Request的新实例。 您需要由Symfony2本身创建的Request实例。

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

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

public function anyAction($_locale)
{
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM