输出数组到模板

时间:2014-09-10 19:09:39

标签: forms templates silverstripe

我正在尝试使用一系列单选按钮添加自定义表单。我需要将一个列表输出到我可以循环的模板中。但是当我运行此代码时,没有任何输出。如果我在循环中添加文本,它只输出一次。

在我的page_controller类

public function outputArray($array){
    $dl = DataList::create("DataObject");

    foreach ($array as $it) {
        $do = new DataObject();
        $do->Value = $it;
        $do->write();
        $dl->push($do);
    }

    return $dl;
}

public function NumList(){return $this->outputArray(array("0","1","2","3","4","5"));}

在我的模板中

<% loop NumList() %>
    $Value
<% end_loop %>

1 个答案:

答案 0 :(得分:3)

你快到了。这就是我写它的方式:

public function outputArray($array)
{
    $dl = new ArrayList();

    foreach ($array as $it) {
        $dl->add(array('Value' => $it));
    }

    return $dl;
}

并在SilverStripe模板中:

<% loop $NumList %>
    $Value
<% end_loop %>

如果你使用SilverStripe的Form类,你应该看一下:http://api.silverstripe.org/3.1/class-SelectionGroup.html 这样您就可以在对象上设置key-&gt;值数组,并获取SilverStripe呈现的单选按钮。