我想创建一个包含不同类的数据对象的循环列表。
类似的东西,但正常运作
DataObject::get()->filter('ClassName, ['MyClass', 'MyOtherClass']);
有没有办法在不进行子类化的情况下实现这一目标?
答案 0 :(得分:2)
csy_dot_io您可以使用两个对象列表创建ArrayList
:
public function getCombinedList()
{
$list = ArrayList::create();
$pushToList = function($object) use (&$list)
{
$list->push($object);
};
MyClass::get()->each($pushToList);
MyOtherClass::get()->each($pushToList);
return $list;
}
如果您希望在一个GridField中管理多个对象,那么您可以查看gridfieldextensions,特别是GridFieldAddNewMultiClass
组件。