Twig 错误中的 Silex 渲染控制器
Silex render controller inside twig error
我正在尝试使用以下方法在树枝模板中渲染控制器:
{{ render(url('contact_form')) }}
但是我收到了这个错误:
An exception has been thrown during the rendering of a template ("Unable to add function "asset" as extensions have already been initialized.")
我有一个名为 asset 的 twig 函数,如下所示:
$app['twig'] = $app->extend('twig', function ($twig, $app) {
// add custom globals, filters, tags, ...
$twig->addFunction(new \Twig_SimpleFunction('asset', function ($asset) use ($app) {
return $app['request_stack']->getMasterRequest()->getBasepath().'/'.$asset;
}));
return $twig;
});
看来 silex 正试图再次在 render() 中添加资产功能。
我不知道如何解决这个问题。
已经有一个名为 asset 的 twig 函数,您需要将您的资产自定义函数调用到其他东西,正如错误所说,它已经被初始化。
我不得不用 try/catch 块包裹它来忽略错误,这样它才能工作。这是一个肮脏的解决方案,但有效。
try {
$twig->addFunction(new \Twig_SimpleFunction('asset', function ($asset) use ($app) {
return $app['request_stack']->getMasterRequest()->getBasepath().'/'.$asset;
}));
} catch (Exception $e) {
// do nothing
}
我正在尝试使用以下方法在树枝模板中渲染控制器:
{{ render(url('contact_form')) }}
但是我收到了这个错误:
An exception has been thrown during the rendering of a template ("Unable to add function "asset" as extensions have already been initialized.")
我有一个名为 asset 的 twig 函数,如下所示:
$app['twig'] = $app->extend('twig', function ($twig, $app) {
// add custom globals, filters, tags, ...
$twig->addFunction(new \Twig_SimpleFunction('asset', function ($asset) use ($app) {
return $app['request_stack']->getMasterRequest()->getBasepath().'/'.$asset;
}));
return $twig;
});
看来 silex 正试图再次在 render() 中添加资产功能。
我不知道如何解决这个问题。
已经有一个名为 asset 的 twig 函数,您需要将您的资产自定义函数调用到其他东西,正如错误所说,它已经被初始化。
我不得不用 try/catch 块包裹它来忽略错误,这样它才能工作。这是一个肮脏的解决方案,但有效。
try {
$twig->addFunction(new \Twig_SimpleFunction('asset', function ($asset) use ($app) {
return $app['request_stack']->getMasterRequest()->getBasepath().'/'.$asset;
}));
} catch (Exception $e) {
// do nothing
}