Twig:来自不同控制器的磁头控制

时间:2012-02-10 07:40:59

标签: symfony twig

我使用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,但我是新手。如果我不正确地发布这个问题,请问我。

1 个答案:

答案 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 %}