Twig:头部阻止来自不同控制器的控制 [英] Twig: head blocks control from different controllers
问题描述
我使用 symfony 2.0.9.base.html.twig 代码:
<头><title>title</title>{% 块样式表 %}<link href="{{ asset('css/main.css') }}" type="text/css" rel="stylesheet"/>{% 结束块 %}{% 阻止 JavaScript %}{% 结束块 %}头部><身体><div class="sidebar">{% block sidebar %}{% endblock %}</div><div class="content">{% 块内容 %}{% endblock %}
我的 Bundle 有自己的 layout.html.twig,由控制器扩展,例如 PostController.php 和 action showAction.
layout.html.twig 代码
{% 扩展 '::base.html.twig' %}{% 块样式表 %}{{ 父母()}}...某物{% 结束块 %}{% 块导航 %}...菜单列表{% 结束块 %}{% 块侧边栏 %}{% 渲染DevMyBundle:Page:sidebar"%}{% 结束块 %}
如何从 sidebar.html.twig 访问 base.html.twig 中的块javascript",它由 PageController 在 layout.html.twig 中呈现:{% render "DevMyBundle:Page:sidebar" %} 或我怎样才能重新组织我的模板结构.有什么用?:边栏中可能有更多块.每个块调用自己的js.如何?感谢提前.
更新:请各位帮帮忙.应该有一个简单的答案.我读过树枝文档,但我是新手.如果我发布的这个问题不正确,请问我.
一种方法是将侧边栏 javascrpt 移动到它自己的模板.layout.html.twig 中的类似内容
{% 块侧边栏 %}{% 渲染ZaysoArbiterBundle:Test1\\Main:sidebar"%}{% 结束块 %}{% 阻止 JavaScript %}{{ 父母()}}<script>一些布局javascript</script>{% 渲染 "ZaysoArbiterBundle:Test1\\Main:sidebarjs" %}{% 结束块 javascript %}
I use symfony 2.0.9. Code of 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>
My Bundle have own layout.html.twig, which being extended by Controllers, for example PostController.php with action showAction.
Code of 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 %}
How can access to block 'javascript' in base.html.twig from sidebar.html.twig, which rendered by PageController like this in layout.html.twig: {% render "DevMyBundle:Page:sidebar" %} or How can i reorganize structure of my templating. What for?: There are more blocks in sidebar may be. Each block call its own js. How? Thanks for advance.
Update: please, guys, help. There should be a simple answer. I have read twig docs, but im newbe in it. If i post this question not correctly, ask me.
One way would be to move the sidebar javascrpt to it's own template. Something like this in 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 %}
这篇关于Twig:头部阻止来自不同控制器的控制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!