Silverstripe 排序版本化模型管理员

Silverstripe 排序版本化模型管理员,silverstripe,modeladmin,Silverstripe,Modeladmin,我正在尝试在SiteTree对象的ModelAdmin中进行自定义排序 public function getList() { $list = parent::getList(); if($this->modelClass == 'Listing') { $list = $list->sort(array('Status' => 'ASC','Street' => 'ASC')); } return $list; } 排

我正在尝试在SiteTree对象的ModelAdmin中进行自定义排序

public function getList() {
    $list = parent::getList();

    if($this->modelClass == 'Listing') {
        $list = $list->sort(array('Status' => 'ASC','Street' => 'ASC'));
    }
    return $list;
}
排序工作正常,但当您尝试编辑记录时,我会出现以下错误:

[User Error] Couldn't run query: SELECT DISTINCT "SiteTree_Live"."ID", "Status", "Street" FROM "SiteTree_Live" WHERE ("SiteTree_Live"."ClassName" IN ('Listing','UnavailableListing')) ORDER BY "Status" ASC, "Street" ASC LIMIT 30 Unknown column 'Status' in 'field list'

显然,SiteTree上不存在状态,它存在于列表中。

您已经回答了自己的问题。在查询
SiteTree
时,如果该列在该表中不存在,则不能按
状态
排序


您需要将模型类更改为
Listing
或将
Status
列添加到
SiteTree
表中。

我使用的是
public static$managed\u models=array('Listing'=>array(“title”=>'Listings')、'MLSListing'=>array(“title”=>'MLS Listings')、'UnavailableListing'=>array(“title”)=>“不可用列表”)