在 Silex 中使用错误处理程序时,如何渲染树枝模板?

When using the error handler in Silex, how do I render a twig template?

我想弄清楚如何让 Silex 中的错误处理程序呈现一个树枝模板。这是他们在文档中提供的内容:

$app->error(function (\Exception $e, Request $request, $code) {
    return new Response('We are sorry, but something went terribly wrong.');
});

我写的是:

 $app->error(function (\Exception $e, Request $request, $code) {
  return $app['twig']->render('error.twig');
});

我也试过:

$app->error(function (\Exception $e, Request $request, $code) {
    return new Response($app['twig']->render('error.twig'));
});

我找不到一本手册来介绍我可以在 Silex 中使用的方法及其错误处理。

变量app在闭包中是未知的,你需要告诉closureuse它。这样您就可以访问 twig 并且可以呈现模板。

$app->error(function (\Exception $e, Request $request, $code) use($app) {
  return $app['twig']->render('error.twig');
});