在Silverstripe页面类型上自动创建子页面

时间:2014-05-05 23:31:58

标签: php silverstripe

我在Silverstripe中有两个名为TeamPage和TeamReport的自定义页面类型。

创建新的TeamPage时,我希望将TeamReport添加为单个子页面 - 使用' / report /'作为URL slug。

我应该向TeamPage添加什么代码才能实现此目的?

1 个答案:

答案 0 :(得分:5)

为此,在TeamReport检查创建后,我会在onAfterWrite上的TeamPage方法中创建onBeforeWrite

public function onBeforeWrite() {
    parent::onBeforeWrite();
    $this->IsCreating = !$this->ID;
}

public function onAfterWrite() {
    parent::onAfterWrite();
    if ($this->IsCreating) {
        $child = new TeamReport();
        $child->ParentID = $this->ID;
        $child->URLSegment = 'report';
        $child->Title = 'Report';
        $child->write();
    }
}