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

Dej*_*can 3 sorting silverstripe

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

查看mysql表,我看到默认情况下有一个Created列和LastEdited列.我想以某种方式使用Created列,所以我可以设置自定义排序来覆盖默认值,但我不知道如何做到这一点.我从未试图覆盖管理模型的sumimmary网格的默认排序方法.

这是Appointment类的代码::

<?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',
    );

}
Run Code Online (Sandbox Code Playgroud)

3dg*_*goo 6

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

class Appointment extends DataObject {

    // ...

    private static $default_sort = 'Created DESC';
}
Run Code Online (Sandbox Code Playgroud)

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

Appointment:
  default_sort: 'Created DESC'
Run Code Online (Sandbox Code Playgroud)