我最近将我的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');
感谢您的帮助
答案 0 :(得分:5)
我发现app.request.uri
在最近的Twig中不再有用了。
但是如果你使用global.request.uri
它就可以了。
我在Twig的文档中没有找到任何关于此的信息。
答案 1 :(得分:4)
正如seblucas所说,global.request.uri
工作正常。但我找到了解决此问题的另一种解决方案。您可以app.request.uri
替换app.request_stack.currentrequest.basepath
。我不知道什么是最好的解决方案...