我在Silverstripe中有两个名为TeamPage和TeamReport的自定义页面类型。
创建新的TeamPage时,我希望将TeamReport添加为单个子页面 - 使用' / report /'作为URL slug。
我应该向TeamPage添加什么代码才能实现此目的?
答案 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();
}
}