Silex v1.3到Silex v2:Twig_Error_Runtime

时间:2016-07-20 20:19:33

标签: php symfony templates twig silex

我最近将我的Silex v1.3项目迁移到Silex v2,其中一切正常。我得到一个枝条错误,我不明白原因

Twig_Error_Runtime in Template.php line 590:

Neither the property "request" nor one of the methods "request()", "getrequest()"/"isrequest()" or "__call()" exist and have public access in class "Silex\Application" in "index.twig" at line 5

这是我的index.twig文件的第5行

{% extends "layout.twig" %}


{% block stylsheets %}
<link rel="stylesheet" type="text/css" href="{{ app.request.basepath }}/public/libs/odometer/themes/odometer-theme-minimal.css" />

当然在布局中,我称之为

{% block stylsheets %}{% endblock %}

但我完全不确定,问题出在twig文件上...... 有什么必须改变吗?

以下是控制器的摘录:

$app->get('/', function () use ($app) {

    return $app['twig']->render('index.twig', [
        ...
    ]);
})->bind('homepage');

感谢您的帮助

2 个答案:

答案 0 :(得分:5)

我发现app.request.uri在最近的Twig中不再有用了。

但是如果你使用global.request.uri它就可以了。

我在Twig的文档中没有找到任何关于此的信息。

答案 1 :(得分:4)

正如seblucas所说,global.request.uri工作正常。但我找到了解决此问题的另一种解决方案。您可以app.request.uri替换app.request_stack.currentrequest.basepath。我不知道什么是最好的解决方案...