我使用symfony 2.0.9。 代码base.html.twig:
<html>
<head>
<title>title</title>
{% block stylesheets %}
<link href="{{ asset('css/main.css') }}" type="text/css" rel="stylesheet" />
{% endblock %}
{% block javascript %}
{% endblock %}
</head>
<body>
<div class="sidebar">{% block sidebar %}{% endblock %}</div>
<div class="content">{% block content %}{% endblock %}</div>
</body>
我的Bundle有自己的layout.html.twig,由控制器扩展,例如PostController.php,带有动作showAction。
layout.html.twig代码
{% extends '::base.html.twig' %}
{% block stylesheets %}
{{ parent() }}
...something
{% endblock %}
{% block navigation %}
...list of menus
{% endblock %}
{% block sidebar %}
{% render "DevMyBundle:Page:sidebar" %}
{% endblock %}
如何从sidebar.html.twig中访问base.html.twig中的'javascript',这是由PageController在layout.html.twig中呈现的:{%render“DevMyBundle:Page:sidebar”%}或者我怎样才能重新组织我的模板结构。 用途是什么?:侧边栏中可能有更多块。每个块调用自己的js。怎么样?谢谢你的进步。
更新:拜托,伙计们,帮忙。应该有一个简单的答案。我已经阅读过twig docs,但我是新手。如果我不正确地发布这个问题,请问我。
答案 0 :(得分:0)
一种方法是将侧边栏javascript移动到自己的模板。 layout.html.twig中有类似的东西
{% block sidebar %}
{% render "ZaysoArbiterBundle:Test1\\Main:sidebar" %}
{% endblock %}
{% block javascript %}
{{ parent() }}
<script>Some layout javascript</script>
{% render "ZaysoArbiterBundle:Test1\\Main:sidebarjs" %}
{% endblock javascript %}