10

这如何在模板内完成?我已经使用 ArrayData 使用模板循环中的键来访问模板中的值,但是如果我有一个没有键的任意字符串数组,我应该使用什么变量来访问这些值?

如果在我的控制器中我有这个:

public function ArrayList()
{
    $ArrayList = new ArrayList(array('this', 'is', 'a', 'test'));
    return $ArrayList;
}

这在我的模板中:

<% loop $ArrayList %>1<% end_loop %>

我用什么代替 1 让模板吐出“这是一个测试”?

4

2 回答 2

17

据我所知这是不可能的,您需要将每个项目包装到一个 ArrayData 对象中

public function ArrayList()
{
    $ArrayList = ArrayList::create(array(
        ArrayData::create(array('Text' => 'this')),
        ArrayData::create(array('Text' => 'is')),
        ArrayData::create(array('Text' => 'a')),
        ArrayData::create(array('Text' => 'test')),
    ));
    return $ArrayList;
}

和模板:

<% loop $ArrayList %>$Text<% end_loop %>

// 注意:___::create()new ___()类固醇

于 2013-07-29T10:58:13.587 回答
6

而不是ArrayData每次都创建一个新实例,您可以只使用$Me. 所以你会有:

public function ArrayList()
{
    $ArrayList = new ArrayList(array('this', 'is', 'a', 'test'));
    return $ArrayList;
}

并且,在您的模板中:

<% loop $ArrayList %>$Me<% end_loop %>

$Me指循环中的当前项。在这种情况下,它将是数组中的字符串。

于 2014-04-28T22:41:56.193 回答