繁体   English   中英

Symfony 4 - base.html.twig 中的“变量不存在”

[英]Symfony 4 - "variable does not exist" in base.html.twig

我有一个博客,有两条路由重定向到我的个人资料页面和我的“更新个人资料”页面

@Route("/profil/{slug}", name="profile")

@Route("/profil/{slug}/infos", name="profile_update")

这些路线在我的导航栏中有两个链接,这是我的 base.html.twig 模板的一部分

所以在我的 base.html.twig 我做了这样的事情

 <a href="{{ path('profile',  {'slug' : membre.slug }) }}" class="dropdown-item">Account</a>
 <a href="{{ path('profile_update',  {'slug' : membre.slug }) }}" class="dropdown-item">Update profile</a>

但它说“变量成员不存在”:(

它只适用于我的个人资料路由,因为在它的模板中,我在页面内也有这些链接,所以在控制器中我做了:

    /**
     * @Route("/profil/{slug}", name="profile")
     */
    public function profile(Membre $membre){

        return $this->render('blog/profile.html.twig', [
            'membre' => $membre
        ]);
    }

它可以工作,但是 base.html.twig没有 CONTROLLER它只是一个“基本”模板,所以我该如何告诉它变量来自哪里?

谢谢

问题是所有控制器操作都使用base.html.twig ,无论用户是否设置为模板变量。 一种解决方案是仅在设置成员变量时显示这些链接:

{% if membre is defined %}
    <a href="{{ path('profile',  {'slug' : membre.slug }) }}" class="dropdown-item">Account</a>
    <a href="{{ path('profile_update',  {'slug' : membre.slug }) }}" class="dropdown-item">Update profile</a>
{% endif %}

唯一的其他选择是始终将该变量传递给模板,这将很困难,因为它需要一些额外的输入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM