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'
我有一个用于存储表单提交的 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'