SilverStripe - 在管理模型中为摘要网格设置默认排序

SilverStripe - Set Default Sort for Summary Grid in Admin Model

我有一个用于存储表单提交的 SilverStripe 的管理模型选项卡(称为 "Appointments")。一切正常,数据显示在摘要网格中。但是,我需要找到一种方法来更改数据的默认排序。现在,条目从旧到新列出,但我需要做到这一点,所以最新的总是排在第一位。

查看 mysql table,我发现默认情况下有一个 Created 列和 LastEdited 列。我想以某种方式使用 Created 列,以便我可以设置自定义排序来覆盖默认值,但我不确定如何执行此操作。我从未尝试覆盖管理模型汇总网格的默认排序方法。

这是约会的代码class::

<?php
class Appointment extends DataObject {

    private static $db = array(
        'Name' => 'varchar',
        'Email' => 'varchar',
        'Phone' => 'varchar',
        'Message' => 'HTMLText',
    );

    private static $summary_fields = array(
        'Name',
        'Email',
        'Phone',
        'Message',
    );

    private static $field_labels = array(
        'Name' => 'Name',
        'Email' => 'Email',
        'Phone' => 'Phone',
        'Message' => 'Message',
    );

}

在 SilverStripe 中,我们可以通过设置 class $default_sort 变量来设置默认排序:

class Appointment extends DataObject {

    // ...

    private static $default_sort = 'Created DESC';
}

另一种方法是通过 yml 文件设置值:

Appointment:
  default_sort: 'Created DESC'