【发布时间】:2021-04-18 02:05:43
【问题描述】:
当我的 slim3 应用程序出现问题时,我想在生产环境中显示自定义视图(使用 twig 视图)。
我阅读了the documentation concerning error handling,但我无法让处理程序显示树枝视图。
所以这是有效的(在我的浏览器中显示错误消息):
if ('development' !== $container->get('settings')['environment']) {
$container['errorHandler'] = function($c) {
return function ($request, $response, $exception) use ($c) {
$c->get('logger')->critical("An error occured", [$exception->getMessage()]);
return $response->write('An error occurred (message: "' . $exception->getMessage(). '").');
};
};
}
但这不起作用,即。它没有使用模板显示视图(相反,我在浏览器中看到了一个空白页面):
if ('development' !== $container->get('settings')['environment']) {
$container['errorHandler'] = function($c) {
return function ($request, $response, $exception) use ($c) {
$exceptionMessage = $exception->getMessage();
$settings = $c->get('settings');
$view = $c->get('view');
$data = [
'app' => $settings['app'],
'title' => 'Error',
'exceptionMessage' => $exceptionMessage
];
$c->get('logger')->critical("An error occured", [$exception->getMessage()]);
return $view->render($response, '500.twig', $data);
};
};
}
我真的不明白为什么它不起作用。有什么想法吗?
【问题讨论】:
标签: error-handling twig slim