默认情况下,Member对象具有以下排序:
private static $default_sort = '"Surname", "FirstName"';
我们有一个项目,我想在CMS的安全部分按"lastedit DESC"排序所有成员。
我已经尝试使用DataExtension:
class ClubMemberFields extends DataExtension {
private static $default_sort = 'LastEdited DESC';
...
}
YML:
Member:
extensions:
- 'ClubMemberFields'
即使在/dev/build/成员仍然按姓氏/姓氏排序。我需要做些什么来设置$default_sort到lastdited ?
作为silverstripe 3,有一个新的配置系统。
这个新的配置系统还可以处理像$db和$default_sort之类的东西。
您已经以两种方式使用这个配置系统,private static $default_sort
的使用和yml配置文件。
很多人不知道的是,它们是同一个配置系统。所以你也可以在yml中设置default_sort
:
Member:
default_sort: 'LastEdited DESC'
应该覆盖private static $default_sort
的值。
因为配置系统的层次结构是:Config::inst()->update()
> yml> php private static
除此之外,在这种情况下使用yml更容易,我看不出你的DataExtension有什么问题,也许你不能用它覆盖default_sort,我不知道。
如果yml版本也不能工作,那么可能您看到的列表没有使用默认排序,而是应用自己的排序。
在这种情况下,您需要自定义列表而不是成员。
编辑:@Tama在评论中指出,为了在GridField中工作,该字段可能必须是summary_fields的一部分。