Я использую модуль DataobjectAsPage от Aram. Теперь я хочу иметь форму на каждом сайте 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 %>
форма есть, но данные не отправляются. Такая же форма работает на обычной странице, но не на объекте данных. Как я могу это исправить?
thx заранее
Функции RegistrationForm
и doRegistration
должны находиться в вашем контроллере страницы Holder, а не в вашем объекте данных.
Это связано с тем, что страница объектов данных фактически контролируется контроллером держателя. Поэтому, если вы отправляете форму на эту страницу, она фактически отправляется на страницу владельца.