我正在使用 Aram 的 DataobjectAsPage 模块。
现在我想在每个 DOaP 站点上都有一个表单。我在我的数据对象中创建了这样的表单
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 %>
表单在那里,但数据未提交。相同的表单适用于普通页面,但不适用于数据对象。我怎样才能解决这个问题?
提前谢谢
Your RegistrationForm
and doRegistration
函数需要位于您的 Holder 页面控制器中,而不是您的数据对象中。
这是因为数据对象页实际上是由持有者控制器控制的。因此,如果您向此页面提交表单,它实际上会提交到持有人页面。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)