Symfony2 在捆绑中扩展树枝 - 没有效果

Symfony2 extends twig in bundle - no effect

我在 Symfony2 中做我的第一个项目。我有模板问题。我的主树枝文件是“index.html.twig”。它位于 src/Gogs/CMSBundle/Resources/views/Default/index.html.twig

我尝试从 content.html.twig 扩展主树枝文件 -> 它也在同一目录中。

index.html.twig 我有 {% block body %}{% endblock %}

我的 content.html.twig 看起来像:

{% extends 'GogsCMSBundle:Default:index.html.twig' %}

{% block body %}
Some content
{% endblock %}

我在很多论坛上寻找解决方案,但没有任何效果。 Symfony 没有给我任何错误 - 没有效果。

当我尝试在 index.html.twig 中使用 include 时,它​​运行良好。下面的代码。

{% include "GogsCMSBundle:Default:content.html.twig" %}

我也尝试使用另一个命令:

 {% extends 'GogsCMSBundle:Default:index.html.twig' %}
 {% extends 'GogsCMSBundle::index.html.twig' %}
 {% extends 'GogsCMSBundle:index.html.twig' %}
 {% extends '::index.html.twig' %}
 {% extends 'index.html.twig' %}

所有这些都没有任何效果 - 也没有错误。

我的主控制器:

 return $this->render('GogsCMSBundle:Default:index.html.twig', array('name' => $page, 'menu' => $menu));

我清理了很多次缓存。

您需要在 app\Resources\views 中移动 indexd.html.twig = 这是 symfony 的基本布局。接下来在 src/YourBundle/Resources/views layout.html.twig 中创建 - 扩展 index.html.twig:

 {% extends '::index.html.twig' %}

最后,添加 content.html.twig :

{% extends 'GogsCMSBundle::layout.html.twig' %}

更多信息there

@Artamiel 找到了答案...

错误在控制器中。控制器必须指示 content.html.twig.

所以解决方案:

index.html.twig

{# src/Gogs/CMSBundle/Resources/views/Default/index.html.twig #}

{% block body %}{% endblock %}.

content.html.twig

{# src/Gogs/CMSBundle/Resources/views/Default/content.html.twig #}
    {% extends 'GogsCMSBundle:Default:index.html.twig' %}

    {% block body %}
    Some content
    {% endblock %}

Contoller.php

return $this->render('GogsCMSBundle:Default:content.html.twig');