对Versioned ModelAdmin进行排序

时间:2014-07-10 18:45:04

标签: silverstripe modeladmin

我正在尝试在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上不存在Status,它存在于Listing。

1 个答案:

答案 0 :(得分:1)

您已经回答了自己的问题。如果该列不存在于该表中,则在查询Status时,您无法按SiteTree订购。

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