0
我創建了一個Album
DataObject
,如下所示,通過ModelAdmin
在cms中進行管理。重寫getCustomSearchContext在銀條中不起作用
在搜索過濾器,Name
是唯一的輸入字段。我也想顯示一個Author
輸入字段。
所以我試圖重寫getCustomSearchContext()
功能,但是這是行不通的。
class Album extends DataObject {
private static $db = array(
'Name' => 'Varchar(200)',
'Author' => 'Varchar(200)',
);
private static $has_many = array(
'Genres' => 'Genre'
);
public function getCustomSearchContext() {
$fields = $this->scaffoldSearchFields(array(
'restrictFields' => array()
));
$filters = array(
'Name' => new PartialMatchFilter('Name'),
'Author' => new PartialMatchFilter('Author')
);
return new SearchContext(
$this->class,
$fields,
$filters
);
}
}
我知道我們可以用$searchable_fields
但我不希望使用他們,因爲我想自定義表單字段的搜索表單。
嗨,如果不忙,我可以問。你是怎麼找到答案的 –
Hi Thomas。好問題。在檢查文檔和各種測試後,我檢查了Silverstripe api中的['DataObject'](http://api.silverstripe.org/3.1/class-DataObject.html#_getDefaultSearchContext)類。我注意到沒有'getCustomSearchContext()'函數,但有一個'getDefaultSearchContext()'函數。 – 3dgoo