我正在使用Aram的DataobjectAsPage模块。 现在我希望在每个DOaP网站上都有一个表格。我在我的Dataobject
中创建了这样的表单public function RegistrationForm() {
$fields = new FieldList(
new TextField('Name'),
new TextField('PlusOne')
);
$actions = new FieldList(
new FormAction('doRegistration', 'Submit')
);
return new Form($this, 'RegistrationForm', $fields, $actions);
}
public function doRegistration($data, $form) {
$submission = new RegistrationObject();
$form->saveInto($submission);
$submission->EventObjectID = $this->ID;
$submission->write();
return $this->redirectBack();
}
我的Dataobject_show.ss模板看起来像这样
$RegistrationForm
<% loop Registrations %>
$Name - $PlusOne
<% end_loop %>
表格在那里,但数据没有提交。相同的表单适用于普通页面,但不适用于数据对象。我该如何解决这个问题?
事先提前答案 0 :(得分:3)
您的RegistrationForm
和doRegistration
功能需要位于Holder页面控制器中,而不是数据对象中。
这是因为数据对象页面实际上是由持有者控制器控制的。因此,如果您向此页面提交表单,它实际上会提交给持有者页面。