SilverStripe 3:在模板中的循环内调用的控制器中的函数

时间:2013-02-26 01:13:50

标签: silverstripe

我写了一个简单的自定义函数来处理超过(>) 这很好,并返回1或0。

当我将$ Pos传递给函数时,它会在循环调用时停止工作。

SilverStripe第3版

控制器

  function MoreThen($pos, $value) {
if($pos > $value) {
  return TRUE;
} else {
  return FALSE;
}

}

Template.ss

<% loop GalleryObjects %>
 <% if Top.MoreThen($Pos,2)  %>
$Pos
<% end_if %>

1 个答案:

答案 0 :(得分:3)

AFAIK不能将变量用作函数调用的参数,只能使用具体值。根据您想要做的事情,您可能希望在模板中使用GalleryObjects.limit(),或者编写一个特定的getter,它只返回偏移量大于2的GalleryObjects。希望这会有所帮助