Php 在特定页面上显示内容
我有一个应用程序,我一直在symfony建设,我试图只显示内容时,用户在某一页上。我有一个if/else块(如下所示),但内容仍然显示在页面上,我也不知道它是什么。我这样做不对吗 if-else块Php 在特定页面上显示内容,php,html,symfony,Php,Html,Symfony,我有一个应用程序,我一直在symfony建设,我试图只显示内容时,用户在某一页上。我有一个if/else块(如下所示),但内容仍然显示在页面上,我也不知道它是什么。我这样做不对吗 if-else块 {% block nav %} {% set uri = app.request.uri %} {% if uri != 'login' %} {% include "StarnesUserBundle::user-nav.html.twig" %} {% en
{% block nav %}
{% set uri = app.request.uri %}
{% if uri != 'login' %}
{% include "StarnesUserBundle::user-nav.html.twig" %}
{% endif %}
{% endblock %}
因此,它应该在不是
/login
页面的每个页面上显示用户nav.html.twig
。类似的东西应该可以实现这一点。这是未经测试的,但应该给你一个大致的想法
{% block nav %}
{% if app.request.attributes.get('_route') != 'login' %}
{% include "StarnesUserBundle::user-nav.html.twig" %}
{% endif %}
{% endblock %}
这假设您的
/login
路线名称为login
,因此只需将login
替换为路线名称即可在登录页面的细枝模板中定义一个变量:
{% set hide_user_nav = true %}
在布局中添加此变量的测试:
{% if (hide_user_nav is not defined) %}
{% block nav %}
{% include "StarnesUserBundle::user-nav.html.twig" %}
{% endblock %}
{% endif %}
如果登录页面扩展了包含此块的布局页面,那么您可以只放置一个空的
{% block nav %}{% endblock nav %}
这将覆盖父导航块。不幸的是,这些路线不是这样命名的。例如,“/login”的路由名称是
fos\u user\u security\u login
您是否在登录页面使用特定的细枝文件?@n.1是的,我有一个单独的细枝文件用于登录。好的,我添加了另一个解决方案,使用仅在登录页面的单独文件中定义的变量,但是我不会发布它,因为另一个答案对你有用。@n.1事实上,我认为它有用,但不起作用。请发布请显示如何从登录页面和另一个随机页面包含布局。不幸的是,这不起作用。这段代码位于layout.html.twig
中,所有用户页面都扩展了此布局。这会阻止它工作吗?此dit不工作,因为用户导航始终显示或从未显示?它从未显示奇怪的是,它应该始终显示,除非定义了hide\u user\u nav
,如果不使用{%set=…%}
,这将永远不会发生。是否清除了缓存?