[英]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.