我是PHP和Silverstripe的初学者,因此对于该问题的回答很简单,我深表歉意。
我正在尝试从演出列表中按日期获取最后8个项目,并以逆序(升序)显示它们。这是我的代码:

//my php function
function Tour() {
      if(!isset($_GET['start']) || !is_numeric($_GET['start']) || (int)$_GET['start'] < 1) $_GET['start'] = 0;
      $SQL_start = (int)$_GET['start'];
      $doSet = DataObject::get(
        $callerClass = "GigDetail",
        $filter = "",
        $sort = "Date ASC",
        $join = "",
        $limit = "{$SQL_start},8"
      );

      return $doSet ? $doSet : false;
    }

//my ss file
<% control Tour %>
    <p>$Place - $Date.Nice - $Address <a href="$Link">more &raquo;</a></p>
<% end_control %>


这将以相反的顺序显示它们,但从列表的底部开始。而我想按日期获取最新的8个演出并以相反的顺序显示它们。它和$ _GET ['start']有关系吗?

提前致谢
毛罗

最佳答案

如果您使用的是Silverstripe 3,则可以在控制循环中反转数据列表,如下所示:

的PHP

function Tour() {
    $gigSet = GigDetail::get()->sort("Date DESC")->limit(8);

    return $gigSet ? $gigSet : false;
}


模板

<% loop $Tour.Reverse %>
    <p>$Place - $Date.Nice - $Address <a href="$Link">more &raquo;</a></p>
<% end_loop %>


更多信息:
http://doc.silverstripe.com/framework/en/reference/templates

10-04 10:55