我是silverstripe框架的新手,并尝试在管理面板中获取菜单列表。
我找到了许多通过Menu(1)和Menu(2)等在前端显示菜单的示例,但没有得到任何示例代码来获取管理模型中的相同菜单数组。
我尝试的代码是:
public function getCMSfields() {
$fields = FieldList::create(TabSet::create('Root'));
$fields->addFieldsToTab('Root.Main', array(
TextField::create('Name'),
DropdownField::create('URL')
->setSource(SiteTree::get()),
));
return $fields;
}
答案 0 :(得分:1)
ModelAdmin主要用于管理DataObjects而不是Pages。请查看Docs和此Lesson以了解有关ModelAdmin的更多信息。
但是如果你想在ModelAdmin中管理页面,你可以这样做
class MyPageAdmin extends ModelAdmin {
...
...
private static $managed_models = array(
'Page'
);
public function getList() {
$list = parent::getList();
if($this->modelClass == 'Page'){
$list = $list->filter('ParentID', '1');
}
return $list;
}
}
要仅管理特定页面中的子项,请使用getList()函数并根据需要过滤列表。
答案 1 :(得分:0)