SilverStripe ModelAdmin

时间:2016-02-05 13:36:31

标签: php silverstripe

我是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;
}

2 个答案:

答案 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)

相关问题