2016-07-20 5 views
2

最近Silex v2.3にすべての作業が正常に実行されたSilex v1.3プロジェクトを移行しました。私はSilex v1.3からSilex v2:Twig_Error_Runtime

を呼んで、私はここで

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 %} 

しかし、私は全くわからないが、問題は は何かが変更する必要がありますです...小枝ファイルにありますか?ここで

は、コントローラの抽出物である:助け

答えて

4

ため

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

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

おかげで私はapp.request.uriが、最近の小枝ともう働いていなかったことが分かりました。

しかし、global.request.uriを使用するとうまくいきます。

それについての情報は、Twigのドキュメントでは見つかりませんでした。

+0

私のためにトリックをしたようにちょうどupvoted - ビットは、選択された答えが私のために働かなかった理由として困惑しました。これを好奇心からどうやって見つけましたか? – mikelovelyuk

+0

どちらの答えも私にとってはうまくいくが、app.requestをglobal.requestに変更する方が簡単だと私は同意する。 – Macbernie

+0

@mikelovelyukコードを読んだことで私は分かった。(そして1ヶ月前に私はhttp://silex.sensiolabsを見つけた。 org/doc/providers/twig.html#global-variable – seblucas

3

セブンカが言ったように、global.request.uriは問題ありません。しかし、私はこの問題を解決する別の解決策を見つけました。 app.request.uriapp.request_stack.currentrequest.basepathに置き換えることができます。私は最高の解決策が何であるか分かりません...

+0

グローバル変数は私の場合は存在しませんが、app.request_stack.currentrequest.basepathはジョブを完了しました。 –

関連する問題