2016-02-29 224 views
1

使用Silverstripe模板,我可以将变量从一个包含传递给另一个吗?将变量从一个模板传递到另一个模板

within Order_ConfirmationEmail.ss <% include Order SendingEmail=true %>。将$ SendingEmail设置为true。

而且在Order.ss通$ SendingEmail到另一个模板通过另一包括:

<% include Order_Content SendingEmail=$SendingEmail %>

然后使用变量$ SendingEmail在Order_Content.ss:

<% if $SendingEmail %>We are sending an email <% end_if %>

不幸的是, $ SendingEmail在Order_Content.ss中没有值(它在Order.ss中)。这种方法可行吗?有没有更好的办法。提前致谢。

+0

我的猜测是'$ SendingEmail'可能没有在包含模块的模板中实际设置。您是否检查过该父模板中的$ SendingEmail的值? – Turnerj

+0

它应该按照https://docs.silverstripe.org/en/3.3/developer_guides/templates/syntax/#includes工作你刷新了吗?你确定这个模板是否被渲染(而不是模块中的另一个)? – wmk

回答

0

它应该。不幸的是,我并不确定所有的情况,但据我所知,这是一件事情(能够通过范围内的任何变量)。但是,您应该注意一些警告。其中最大的就是范围。如果你在任何时候改变上下文(并且你有多个图层,所以这可能有点可能),你需要确保你试图引用的变量在范围内。否则它将是空白的,并因此对其进一步参考报告。这是模板中最常见的问题,因此总是支付双倍(三重)检查费用。

相关问题