Symfony 2.4 {{app.request}}在Production中为空

时间:2014-01-28 11:20:23

标签: symfony twig production-environment

我正在使用app.request作为检索区域设置,当前路线等各种常见用法。

{{ path(app.request.get('_route')) }}
{{ app.request.locale }}

它在Development环境中工作正常,但在Production中,变量只是空的。它始终返回null个值,因此会导致所有类型的错误,如:

"Unable to generate a URL for the named route "" as such route does not exist."

如何在app.request环境中访问Production

修改

我应该澄清app.request实际上“存在”,但由于某种原因,它总是返回空值而不是预期值。如果我在app.request下调用不存在的方法,例如app.request.thisdoesnotexist,我会收到错误:

Method "thisdoesnotexist" for object "Symfony\Component\HttpFoundation\Request" does not exist in...

但我没有收到此错误,因此app.request实际上已定义,但为空。

2 个答案:

答案 0 :(得分:0)

app.request适用于任何环境。但你错过了)

{{ path('"'~app.request.get('_route')~'"') }}
{{ app.request.locale }}

或尝试测试:

{{ app.request.get('_route') }}
{{ app.request.locale }}

答案 1 :(得分:0)

最后我找到了解决方案。这是我的特定设置的部署问题,但它可以帮助处于类似情况的其他人。

缩短:使用

重建bootstrap.php
php vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Resources/bin/build_bootstrap.php

如果出于任何原因,您被迫使用composer选项在Production中运行--no-scripts次更新(因为我由于共享托管限制),忘记重建该文件可能会导致这个问题。