3

我正在尝试从路由条件(文档)中的表达式访问应用程序范围的 symfony 参数(在 app/config/parameters.yml 中定义)。

我尝试了将参数插入百分号并通过函数“参数”(如此对 DI 所述)的运气,但均无济于事。

这是带有参数函数的示例:

example_route:
    path:     /example/{_locale}
    condition: "request.getLocale() in parameter('locales_array')"
    defaults: 
        _controller: "AcmeExampleBundle:Example:index"
        _locale: %locales_default%


但是我得到:

SyntaxError - 位置 24 附近不存在函数“参数”。


有没有办法从路由条件表达式中访问参数?

4

2 回答 2

2

我在https://github.com/symfony/symfony/pull/12869上为 2.7 版本打开了一个 PR ,直到它完成并发货,如果 UrlMatcher 在你需要的项目中,你将不得不使用你自己的扩展版本添加容器函数提供程序,并在 ExpressionLanguage#evaluate 的“变量”参数中注入一个容器,以便您能够访问参数和服务。

您可以查看 PR 以获取如何操作的提示,如果您稍后需要,我会更详细地写它。

于 2014-12-05T17:27:50.200 回答
0

你很幸运(我有点晚了),我只使用语法 %variable% 从表达式访问 Symfony 参数。

这是您在 Symfony 3 中测试的示例:

example_route:
    path:     /example/{_locale}
    condition: "request.getLocale() in ['%locales_array%']"
    defaults: 
        _controller: "AcmeExampleBundle:Example:index"
        _locale: %locales_default%
于 2016-06-24T19:19:45.037 回答