PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php-如何更改Silverstripe中成员的默认排序?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

认情况下,Member对象具有以下排序:

private static $default_sort = '"Surname", "FirstName"';

我们有一个项目,我要按“ LastEdited DESC”对CMS“安全性”部分中的所有成员进行排序.

我尝试使用DataExtension来应用它:

class ClubMemberFields extends DataExtension {

  private static $default_sort = 'LastEdited DESC'; 

...
}

YML:

Member:
  extensions:
    - 'ClubMemberFields'

即使在/ dev / build /之后,仍按姓/名对成员进行排序.我需要怎么做才能将$default_sort设置为LastEdited?

解决方法:

从silverstripe 3开始,有一个新的配置系统.
这个新的配置系统还处理$db和$default_sort之类的东西.

您已经以两种方式使用此配置系统,即使用私有静态$default_sort和yml配置文件.

许多人不知道的是,它们是一个相同的配置系统.
因此,您也可以在yml中设置default_sort:

Member:
  default_sort: 'LastEdited DESC'

这将覆盖私有静态$default_sort中的值.
因为配置系统的层次结构为:Config :: inst()-> update()> yml> PHP的私人静态

除了在这种情况下使用yml更容易之外,我没有发现您的DataExtension有什么问题,也许您无法用它覆盖default_sort,我不知道.
如果yml版本也不起作用,那么您看到的列表也许不使用认排序,而是应用自己的排序.
在这种情况下,您需要自定义列表而不是成员.

编辑:@Tama在注释中指出,该字段可能必须是summary_fields的一部分才能在GridField中工作.

大佬总结

以上是大佬教程为你收集整理的php-如何更改Silverstripe中成员的默认排序?全部内容,希望文章能够帮你解决php-如何更改Silverstripe中成员的默认排序?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: