php - Silverstripe 按日期获取最后 8 项并倒序显示

标签 php mysql silverstripe

我是 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,您可以像这样在控制循环中反转 DataLists:

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

关于php - Silverstripe 按日期获取最后 8 项并倒序显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19126487/

相关文章:

php - 在 PHP 对象中连接到 MDB2

带加号的参数的 PHP $_GET

mysql - WP SQL向所有用户添加具有空meta_value的meta_key

mysql - SQL 中具有多个连接的复杂 where 子句

php - 无法使文件/目录可由 php 写入

php - 当搜索参数值为 null 或为空时选择所有行 [mysql]

PHP JSON 数据到 Xcode Swift 数组

SQL 数据库连接中的 java.sql.SQLSyntaxErrorException

php - 如何在 Silverstripe 中设置页面类型的默认安全访问?

javascript - 自动更新 URL 段的最简单方法是什么?