是否有我可以添加到循环中的所有选项的列表?
我不知道选项是否正确。我的意思是这些
<% loop Dataobject.Reverse %>
<% loop Dataobject.Limit() %>
有人可以告诉我这里可能发生的一切吗?它的正确名称是什么?
答案 0 :(得分:9)
您的问题中存在错误,它是<% loop $DataList.xxx %>
或<% loop $ArrayList.xxx %>
(请参阅,您正在循环使用DataObjects列表)
好吧,loop
基本上只是一个foreach
循环
所以,例如:
<% loop $DataList.Reverse %>$Title<% end_loop %>
有点像:
<?php
foreach($dataList->reverse() as $item) {
echo $item->Title;
}
'kindof'相同,因为实际上模板会为你做一些检查和转换(例如,如果未设置Title,它不会抛出并出错),并且循环只能循环SilverStripe列表,而不是数组
TL;博士; /结论
loop
根本没有选择权
您所说的选项是您要循环的列表中存在的方法。
2列出了你通常会循环的php类:
请参阅API文档中的方法列表,了解可用的方法。
显然并非所有方法都用于循环,
只有那些返回DataList
或ArrayList
的人才会有用
你可以看到他们从表格的第一列返回的内容。
例如:
public ArrayList limit( integer $length, integer $offset = 0 )
表示:
limit
所以你可以这样做:<% loop $List.limit(10,5) %>
进一步阅读:
该列表中的某些方法不显示参数但实际上有这些参数,这是因为它们是动态的,而且API文档无法显示。
示例:
public ArrayList filter( )
可以像这样使用(我想,从未尝试过):
<% loop $List.filter('Name', 'Zauberfisch') %>
您还可以通过创建Extension
并将此扩展程序添加到DataList
和ArrayList