【发布时间】:2015-05-25 19:46:23
【问题描述】:
我在 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));
我多次清理缓存。
【问题讨论】:
-
到底是什么问题?有任何异常或错误消息吗?
-
“content.html.twig”中的内容未显示在 index.html.twig 中 - 没有错误或消息。没有什么。我不知道为什么
-
您知道您将控制器设置为渲染
index.html.twig而不是content.html.twig,它扩展了您的index文件,对吗?还是因为复制代码打错了? -
class DefaultController extends Controller { public function indexAction() { $page = $menu = "page_name"; return $this->render('GogsCMSBundle:Default:index.html.twig', array('name' => $page, 'menu' => $menu)); }嗯。我渲染 index.html.twig - 不是内容 -
这就是您在
content.html.twig中定义的文本不显示的原因。您必须将此模板设置为在您的控制器中呈现,因为它是扩展您的index.html.twig文件的模板,该文件用作布局。