0

我有以下问题:我的$GiftID页面上有变量。我想使用我的函数循环浏览我所有的礼物对象getGifts()。当$ID礼物的 等于$GiftID页面的 时,我想要一些事情发生。

这是我的代码示例:

$GiftID 
<% control getGifts %> 
   <% if CurrentPage.GiftID = ID %>This is it!<% end_if %> 
<% end_control %>

在控件内部打印时使用$CurrentPage.GiftID有效,但我究竟如何从 if 语句中访问它?

我正在使用 SS 2.9

4

2 回答 2

1

我还没有使用过ss2.9,但据我所知,你不能<% if Top.GiftID = ID %>在任何2.x版本中做,你不能比较2个变量,你只能和静态值比较。(但在 3.0 中可以)

所以你必须在php端做,如果你只想显示选择的礼物对象,那么:

  1. 如果GiftID实际上是 has_one 关系的 DB 字段,Gift那么您只需执行 <% control Gift %> 它将使用 GiftID 限定 Gift 对象
  2. 如果您确实已GiftID保存为 DB 字段或其他方式,则可以这样做
    public function getGift() { return DataObject::get_by_id('Gift', $this->GiftID); }

两种方式你都可以做到 <% control Gift %> 并且它会影响它

如果要列出所有礼物并标记当前礼物,则需要在 php 端进行(foreach 对象集并在当前对象上设置标志)

于 2012-08-24T06:49:46.903 回答
0

您应该能够通过以下方式访问当前页面Top

<% control getGifts %> 
   <% if Top.GiftID = ID %>This is it!<% end_if %> 
<% end_control %>
于 2012-08-24T03:21:46.417 回答