我有以下问题:
我的页面上有变量$GiftID
。
我想使用我的函数getGifts()
遍历所有礼物对象。
当礼物的$ID
等于页面的$GiftID
时,我希望发生一些事情。
以下是我的代码示例:
$GiftID
<% control getGifts %>
<% if CurrentPage.GiftID = ID %>This is it!<% end_if %>
<% end_control %>
在控件内打印时使用$CurrentPage.GiftID
,但我是如何从if语句中访问它的呢?
我正在使用SS 2.9
答案 0 :(得分:1)
我还没有使用ss2.9,但据我所知,你不能在任何2.x版本中做<% if Top.GiftID = ID %>
,你无法比较2个变量,你只能比较静态的vaules。 (但有可能在3.0)
所以你必须在php方面这样做,如果你只想显示所选择的礼物对象,那么:
GiftID
实际上是has_one关系Gift
的数据库字段,那么您可以执行&lt;%control Gift%&gt;它将使用GiftID GiftID
保存为DB字段或其他,则可以执行public function getGift() { return DataObject::get_by_id('Gift', $this->GiftID); }
你可以做的两种方式&lt;%control Gift%&gt;它将涵盖范围
如果你想列出所有礼物并标记当前的礼物,那么你需要在php端进行(foreach对象集并在当前对象上设置一个标志)
答案 1 :(得分:0)
您应该可以使用Top
访问当前页面:
<% control getGifts %>
<% if Top.GiftID = ID %>This is it!<% end_if %>
<% end_control %>