【问题标题】:Reading parameter in PHP from YAML to handle routing in Symfony2从 YAML 读取 PHP 中的参数以处理 Symfony2 中的路由
【发布时间】:2015-08-06 03:33:48
【问题描述】:

我有一个处理 Symfony2 项目中路由的 PHP 文件,它运行良好,但是,现在我正在尝试添加一个参数以将其从 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(),但它总是返回相同的

【问题讨论】:

  • 对不起,我不明白你想要达到什么目的。

标签: php symfony routing yaml


【解决方案1】:

您不能创建新的请求实例。你需要 Symfony2 自己创建的 Request 实例。

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

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

public function anyAction($_locale)
{
}

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

【讨论】:

  • 我明白了,我知道我需要访问由 Symfony2 创建的 Request 实例,但问题是我试图从不是类的路由文件访问
  • 为什么在路由文件中需要它?我认为这甚至是不可能的。您可以从 $_SERVER 变量中获取它,但您正在尝试在简单的路由定义中执行一些逻辑。如果你能澄清你想要什么,那么有人可以帮助你。
猜你喜欢
  • 2013-04-30
  • 2019-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-23
  • 1970-01-01
  • 2013-03-10
  • 2020-08-21
相关资源
最近更新 更多