Silverstripe更改DataList的类

时间:2015-01-20 00:58:33

标签: orm silverstripe

我有一个Holder类,它返回一个BaseClass类型的DataList。对象实际上是SearchClass对象。如何转换DataList以便我可以按SearchClass字段进行过滤。

class SearchClass extends BaseClass(){
    public static $db = array('myField' => 'Int');
}

abstract class Holder{
    abstract protected function myList();
}

$holder = new ConcreteHolder();
$holder->myList()->filter('myField',1);

2 个答案:

答案 0 :(得分:2)

最简单的方法是:

class Holder extends DataObject {
    public function myList(){
        return SearchClass::get()->filter('baseField', 'aValue');
    }
}

答案 1 :(得分:0)

经过一段时间后,我想出了解决方案。

public function convert($list){
    $ids = $list->filter('ClassName', 'SearchClass')->getIDList();
    return SearchClass::get->byIDs($ids);
}