通过扩展树枝模板创建一个 hedear 菜单
Creating a hedear menu by extending twig templates
我正在尝试实现下面的菜单,但出于某种原因,如果我导航到第 3 级和第 4 级,它不会显示菜单的中间部分(第 2 级和第 3 级)。如果我在第 3 级那么 1、2、3 应该是可见的。如果我在第 4 级,那么所有级别。这就是我想要实现的目标。
我阅读了整个 templating documentation, this post 以及更多内容,但无法找到为什么我下面的代码不起作用。
预计:
FRONTEND - BACKEND
----------------------
COUNTRY | LEAGUE -> After selecting FRONTEND in level 1 above
----------------------
INDEX | LIST | CREATE -> After selecting COUNTRY in level 2 above
----------------------
Countries will appear here after selecting LIST in level 3 above
我失败的尝试:
FRONTEND - BACKEND
----------------------
INDEX | LIST | CREATE -> After selecting COUNTRY in level 2 above
----------------------
或
FRONTEND - BACKEND
----------------------
Countries will appear here after selecting LIST in level 3 above
base.html.twig
Football
BackendBundle
.....
FrontendBundle
Resources
views
Default
index.html.twig
Country
index.html.twig
list.html.twig
base.html.twig
<body>
<a href="{{ path('football_frontend_default_index') }}">FRONTEND</a>
‐
<a href="{{ path('football_backend_default_index') }}">BACKEND</a>
<hr />
{% block body %}{% endblock %}
{% block javascripts %}{% endblock %}
</body>
Default/index.html.twig
{% extends '::base.html.twig' %}
{% block body %}
{% spaceless %}
<a href="{{ path('football_frontend_country_index') }}">COUNTRY</a>
|
<a href="{{ path('football_frontend_league_index') }}">LEAGUE</a>
<hr />
{% endspaceless %}
{% endblock %}
Country/inedx.html.twig
{% extends 'FootballFrontendBundle:Default:index.html.twig' %}
{% block body %}
{% spaceless %}
<a href="{{ path('football_frontend_country_index') }}">Index</a>
|
<a href="{{ path('football_frontend_country_list') }}">List</a>
|
<a href="{{ path('football_frontend_country_create') }}">create</a>
<hr />
{% endspaceless %}
{% endblock %}
Country/list.html.twig
{% extends 'FootballFrontendBundle:Country:index.html.twig' %}
{% block body %}
{% spaceless %}
COUNTRY - List
<hr />
....
{% endspaceless %}
{% endblock %}
当您在文件 Country/list.html.twig
中使用 body
块时,您将替换根文件 base.html.twig
中的块。它与 PHP 中的方法继承相同。如果你想做你想达到的目标,你有两种方法:
- 在你的块中使用 {{ parent() }} 来显示块的父模板内容
- 为每个子模板的块使用不同的名称
例如
Default/index.html.twig
{% extends '::base.html.twig' %}
{% block body %}
{% spaceless %}
<a href="{{ path('football_frontend_country_index') }}">COUNTRY</a>
|
<a href="{{ path('football_frontend_league_index') }}">LEAGUE</a>
<hr />
{% endspaceless %}
{% block body2 %}{% endblock %}
{% endblock %}
Country/inedx.html.twig
{% extends 'FootballFrontendBundle:Default:index.html.twig' %}
{% block body2 %}
{% spaceless %}
<a href="{{ path('football_frontend_country_index') }}">Index</a>
|
<a href="{{ path('football_frontend_country_list') }}">List</a>
|
<a href="{{ path('football_frontend_country_create') }}">create</a>
<hr />
{% endspaceless %}
{% block body3 %}{% endblock %}
{% endblock %}
我正在尝试实现下面的菜单,但出于某种原因,如果我导航到第 3 级和第 4 级,它不会显示菜单的中间部分(第 2 级和第 3 级)。如果我在第 3 级那么 1、2、3 应该是可见的。如果我在第 4 级,那么所有级别。这就是我想要实现的目标。
我阅读了整个 templating documentation, this post 以及更多内容,但无法找到为什么我下面的代码不起作用。
预计:
FRONTEND - BACKEND
----------------------
COUNTRY | LEAGUE -> After selecting FRONTEND in level 1 above
----------------------
INDEX | LIST | CREATE -> After selecting COUNTRY in level 2 above
----------------------
Countries will appear here after selecting LIST in level 3 above
我失败的尝试:
FRONTEND - BACKEND
----------------------
INDEX | LIST | CREATE -> After selecting COUNTRY in level 2 above
----------------------
或
FRONTEND - BACKEND
----------------------
Countries will appear here after selecting LIST in level 3 above
base.html.twig
Football
BackendBundle
.....
FrontendBundle
Resources
views
Default
index.html.twig
Country
index.html.twig
list.html.twig
base.html.twig
<body>
<a href="{{ path('football_frontend_default_index') }}">FRONTEND</a>
‐
<a href="{{ path('football_backend_default_index') }}">BACKEND</a>
<hr />
{% block body %}{% endblock %}
{% block javascripts %}{% endblock %}
</body>
Default/index.html.twig
{% extends '::base.html.twig' %}
{% block body %}
{% spaceless %}
<a href="{{ path('football_frontend_country_index') }}">COUNTRY</a>
|
<a href="{{ path('football_frontend_league_index') }}">LEAGUE</a>
<hr />
{% endspaceless %}
{% endblock %}
Country/inedx.html.twig
{% extends 'FootballFrontendBundle:Default:index.html.twig' %}
{% block body %}
{% spaceless %}
<a href="{{ path('football_frontend_country_index') }}">Index</a>
|
<a href="{{ path('football_frontend_country_list') }}">List</a>
|
<a href="{{ path('football_frontend_country_create') }}">create</a>
<hr />
{% endspaceless %}
{% endblock %}
Country/list.html.twig
{% extends 'FootballFrontendBundle:Country:index.html.twig' %}
{% block body %}
{% spaceless %}
COUNTRY - List
<hr />
....
{% endspaceless %}
{% endblock %}
当您在文件 Country/list.html.twig
中使用 body
块时,您将替换根文件 base.html.twig
中的块。它与 PHP 中的方法继承相同。如果你想做你想达到的目标,你有两种方法:
- 在你的块中使用 {{ parent() }} 来显示块的父模板内容
- 为每个子模板的块使用不同的名称
例如
Default/index.html.twig
{% extends '::base.html.twig' %}
{% block body %}
{% spaceless %}
<a href="{{ path('football_frontend_country_index') }}">COUNTRY</a>
|
<a href="{{ path('football_frontend_league_index') }}">LEAGUE</a>
<hr />
{% endspaceless %}
{% block body2 %}{% endblock %}
{% endblock %}
Country/inedx.html.twig
{% extends 'FootballFrontendBundle:Default:index.html.twig' %}
{% block body2 %}
{% spaceless %}
<a href="{{ path('football_frontend_country_index') }}">Index</a>
|
<a href="{{ path('football_frontend_country_list') }}">List</a>
|
<a href="{{ path('football_frontend_country_create') }}">create</a>
<hr />
{% endspaceless %}
{% block body3 %}{% endblock %}
{% endblock %}