Symfony:渲染块时出错 - 无法找到模板

时间:2018-04-05 09:38:43

标签: php symfony sonata-admin symfony-3.3

我正在使用Sonata的块捆绑和Symfony 3.3来开发应用程序。我已配置了阻止服务来显示YouTube视频。

该服务包括以下代码:

    $blockContext->setSetting('template', 'AppBundle:Components:videoElement.html.twig');
    return $this->renderResponse($blockContext->getTemplate(), array(
        'block' => $block,
        'settings' => $settings,
        'media' => $media,
        'framehtml' => $frameHtml,
        'provider_reference' => $providerReference,

    ), $response);

当我在笔记本电脑上使用该服务时,效果很好。当我转移到另一个环境时,视频不再显示,我收到以下错误:

  

[2018-04-05 11:24:23] app.ERROR:[cms :: renderBlock] block.id = 13 -   渲染块时出错 - 无法找到模板   "的appbundle:组成:videoElement.html.twig" (调查:   / SRV / htdocs中/ vgms核心/应用/资源/视图,   / SRV / htdocs中/ vgms核心/供应商/ symfony中/ symfony中/ src目录/ Symfony的/桥梁/嫩枝/资源/视图/表,   / SRV / htdocs中/ vgms核心/供应商/ knplabs / KNP-菜单/ src目录/ KNP /菜单/资源/视图)。   {" exception":" [object](InvalidArgumentException(code:0):无法   找到模板\" AppBundle:组件:videoElement.html.twig \" (看着   into:/ srv / htdocs / vgms-core / app / Resources / views,   / SRV / htdocs中/ vgms核心/供应商/ symfony中/ symfony中/ src目录/ Symfony的/桥梁/嫩枝/资源/视图/表,   / SRV / htdocs中/ vgms核心/供应商/ knplabs / KNP-菜单/ src目录/ KNP /菜单/资源/视图)。   在   /srv/htdocs/vgms-core/vendor/symfony/symfony/src/Symfony/Bridge/Twig/TwigEngine.php:127,   Twig_Error_Loader(代码:0):无法找到模板   \"的appbundle:组成:videoElement.html.twig \" (调查:   / SRV / htdocs中/ vgms核心/应用/资源/视图,   / SRV / htdocs中/ vgms核心/供应商/ symfony中/ symfony中/ src目录/ Symfony的/桥梁/嫩枝/资源/视图/表,   / SRV / htdocs中/ vgms核心/供应商/ knplabs / KNP-菜单/ src目录/ KNP /菜单/资源/视图)。   在   /srv/htdocs/vgms-core/vendor/twig/twig/lib/Twig/Loader/Filesystem.php:232)"}   []

模板存在并存在 src/AppBundle/Resources/views/components/videoElement.html.twig

如何明确告诉Symfony在哪里查找此模板?

1 个答案:

答案 0 :(得分:1)

Referencing Templates in a Bundle (Symfony 3.3 version)所示,您可以使用Twig语法@BundleName/directory/filename.html.twig来指定特定捆绑模板的位置。

默认情况下,特定的捆绑模板存储在BundleName/Resources/views文件夹中,可以使用@App/videoElement.html.twig进行引用,因此在您的情况下,您只需要指定添加的components文件夹{{1 }}