Symfony - Twig - 使用参数更改宏中块的名称
Symfony - Twig - Change name of a block in macro with a parameter
我正在尝试使用参数更改我的 twig 宏中存在的块的名称...
这是我的宏:
{% macro menu_left_item(numero_item, path_menu, title, icon, name_block) %}
<div class="row row-nav-item item{{ numero_item }} {% block block_active_menu_left %}{% endblock block_active_menu_left %}">
<a href="{{ path_menu }}">
<span class="menuLeftIcon"
data-toggle="tooltip"
data-placement="right"
title="{{ title|trans|title }}"
data-container="#content-user-account">
<span class="bgborder"></span>
<i class="fa fa-{{ icon }} fa-fw"></i>
</span>
<span class="menuLeftTitle">
<span>{{ title|trans|title }}</span>
</span>
</a>
</div>
{% endmacro %}
然后当我调用宏时:
{% if is_granted("ROLE_ADMIN") %}
{{ forms.menu_left_item(5, path('admin_account_dashboard'), 'user_account.nav-left.dashboard', 'dashboard', 'active_dashboard' ) }}
{{ forms.menu_left_item(6, path('admin_account_files_management'), 'user_account.nav-left.admin', 'copy', 'active_files' ) }}
{{ forms.menu_left_item(7, path('account_setting_avatar'), 'user_account.nav-left.settings', 'cogs', 'active_account_setting' ) }}
{% else %}
{{ forms.menu_left_item(1, path('user_account_dashboard'), 'user_account.nav-left.dashboard', 'dashboard', 'active_dashboard' ) }}
{{ forms.menu_left_item(2, path('avc_user_media_upload', {'step': 1}), 'user_account.nav-left.upload', 'upload', 'active_upload' ) }}
{{ forms.menu_left_item(3, path('avc_user_media_in_process'), 'user_account.nav-left.files', 'copy', 'active_files' ) }}
{{ forms.menu_left_item(4, path('account_setting_avatar'), 'user_account.nav-left.settings', 'cogs', 'active_setting' ) }}
{% endif %}
我需要的是通过我的宏 name_block
.
的最后一个参数更改宏 {% block block_active_menu_left %}
中存在的块的名称
有了那个,什么也没发生...
什么是好的句法?
对于我的宏的每次调用,结果可能是这样的:
{% block active_dashboard %}
{% block active_files %}
{% block active_account_setting %}
...
谢谢!
如果您只想插入一个具有动态名称的块,请使用块函数:http://twig.sensiolabs.org/doc/functions/block.html .
我正在尝试使用参数更改我的 twig 宏中存在的块的名称...
这是我的宏:
{% macro menu_left_item(numero_item, path_menu, title, icon, name_block) %}
<div class="row row-nav-item item{{ numero_item }} {% block block_active_menu_left %}{% endblock block_active_menu_left %}">
<a href="{{ path_menu }}">
<span class="menuLeftIcon"
data-toggle="tooltip"
data-placement="right"
title="{{ title|trans|title }}"
data-container="#content-user-account">
<span class="bgborder"></span>
<i class="fa fa-{{ icon }} fa-fw"></i>
</span>
<span class="menuLeftTitle">
<span>{{ title|trans|title }}</span>
</span>
</a>
</div>
{% endmacro %}
然后当我调用宏时:
{% if is_granted("ROLE_ADMIN") %}
{{ forms.menu_left_item(5, path('admin_account_dashboard'), 'user_account.nav-left.dashboard', 'dashboard', 'active_dashboard' ) }}
{{ forms.menu_left_item(6, path('admin_account_files_management'), 'user_account.nav-left.admin', 'copy', 'active_files' ) }}
{{ forms.menu_left_item(7, path('account_setting_avatar'), 'user_account.nav-left.settings', 'cogs', 'active_account_setting' ) }}
{% else %}
{{ forms.menu_left_item(1, path('user_account_dashboard'), 'user_account.nav-left.dashboard', 'dashboard', 'active_dashboard' ) }}
{{ forms.menu_left_item(2, path('avc_user_media_upload', {'step': 1}), 'user_account.nav-left.upload', 'upload', 'active_upload' ) }}
{{ forms.menu_left_item(3, path('avc_user_media_in_process'), 'user_account.nav-left.files', 'copy', 'active_files' ) }}
{{ forms.menu_left_item(4, path('account_setting_avatar'), 'user_account.nav-left.settings', 'cogs', 'active_setting' ) }}
{% endif %}
我需要的是通过我的宏 name_block
.
{% block block_active_menu_left %}
中存在的块的名称
有了那个,什么也没发生...
什么是好的句法?
对于我的宏的每次调用,结果可能是这样的:
{% block active_dashboard %}
{% block active_files %}
{% block active_account_setting %}
...
谢谢!
如果您只想插入一个具有动态名称的块,请使用块函数:http://twig.sensiolabs.org/doc/functions/block.html .