Shopware 5 在前端访问控制器变量(模板变量)

Posted

技术标签:

【中文标题】Shopware 5 在前端访问控制器变量(模板变量)【英文标题】:Shopware 5 accessing controller variables (Template Variables) on frontend 【发布时间】:2016-05-22 04:43:36 【问题描述】:

许多文章中为此给出的技术术语是Template Variables。我试图了解我们如何找到控制器中为 Shopware 5 前端的特定字段(例如产品名称)给出的变量名称

例如,我可以看到文章名称的模板变量已被指定为$sArticle.articleName。这是我手动检查源代码时发现的。

假设我想找到特定产品的折扣值,我如何在我的主题上打印这个?我应该使用什么变量以及找到它的简单方法是什么。

我可以从后端为所有变量分配值,但我的问题是在技术开发方面更新主题时如何在主题文件中访问它们。

请注意:我正在尝试了解 shopware5 的技术方面。

【问题讨论】:

【参考方案1】:

如果你想在模板中使用你的变量,你必须编写一个插件并将你的控制器变量分配给视图。

查看商店软件文档中的Globale Variablen im Template verwenden。

如果你想查看哪些变量已经被赋值,你可以在模板中使用debug。如果您想调试特定变量(本例中为 $sArticle),$sArticle|var_dump 也非常有用。

您必须知道商店软件会将对象的成员分配给视图。

【讨论】:

谢谢,这已经用完了,我从这篇文章developers.shopware.com/developers-guide/debugging 中找到了有关调试的更多详细信息。另外,您能否告诉我如何找到这些变量的相关控制器以及我应该使用什么方法,以便从控制器添加新变量并将其传递给视图?【参考方案2】:

使用 debug 函数通常会为您提供所有已分配变量的列表。此列表还应包含一个变量$Controller,它会提示您当前相关的控制器。

很遗憾,您无法确定分配变量的来源。由于 Shopware 的事件驱动架构,可以在将请求分派到相关控制器后将变量分配给视图。这意味着变量可以通过第三方插件以及特定的事件侦听器和店面装饰器(在 Shopware 5 中)进行分配。

亲切的问候!

【讨论】:

以上是关于Shopware 5 在前端访问控制器变量(模板变量)的主要内容,如果未能解决你的问题,请参考以下文章

shopware 6 中的电子邮件模板变量

Shopware 5 在模板文件中调用自定义函数

如何管理 Shopware 中的 SEO-Urls?

什么是 var/plugins.json,它应该进入版本控制(Shopware 6.3.5.2)吗?

php 调试shopware模板属性

Djnago模板与标签