如何将变量传递给注释或yaml?

时间:2018-05-12 18:19:48

标签: php symfony

在Symfony,我们可以:

     /**
     * @Route(
     *     "/articles/{_locale}/{year}/{slug}.{_format}",
     *     defaults={"_format": "html"},
     *     requirements={
     *         "_locale": "en|fr",
     *         "_format": "html|rss",
     *         "year": "\d+"
     *     }
     * )
     */
    public function show($_locale, $year, $slug)
    {
    }

article_show:
  path:     /articles/{_locale}/{year}/{slug}.{_format}
  controller: App\Controller\ArticleController::show
  defaults:
      _format: html
  requirements:
      _locale:  en|fr
      _format:  html|rss
      year:     \d+

我的问题主要是关于语言。

我可以将来自parameters.yml或PHP的en | fr(例如我在数据库中定义的语言)传递给注释和yaml吗?

现在这是代码的重复,此外如果客户端向数据库添加新语言,那么我必须手动编辑所有路由声明。

1 个答案:

答案 0 :(得分:0)

您可以从parameters.ymlconfig.yml传递parmaters,请参阅doc

# app/config/routing.yml
contact:
    path:     /{_locale}/contact
    defaults: { _controller: AppBundle:Main:contact }
    requirements:
        _locale: '%app.locales%'


# app/config/config.yml
parameters:
    app.locales: en|es