サインアップフォームがあります:
function SignupForm() {
$fields = new FieldSet(
new TextField("FirstName", "First name"),
new TextField("Surname"),
new EmailField("Email", "Email address")
);
$submitAction = new FieldSet(new FormAction("SignupAction", "Sign up"));
$required = new RequiredFields("Email");
$SignupForm = new Form($this, "SignupForm", $fields, $submitAction, $required);
return $SignupForm;
}
function SignupAction($data, $form) {
$member = new Member();
$form->saveInto($member);
$member->write();
if($group = DataObject::get_one('Group', "ID = $this->defaultGroupID")){
$member->Groups()->add($group);
Director::redirect('thanks-for-registering/');
}else{
Director::redirect('registration-failed/');
}
}
これはホームページからは問題なく実行されますが、サイトのすべてのページとサブページに表示されるため、フォームアクションを設定する必要があります。
私はこれを追加しようとしました:
$SignupForm->setFormAction(Director::baseURL().'home/SignupAction');
$ SignupFormを返す前に、(どこからでも)フォームを送信すると次のエラーが発生します
Missing argument 2 for Page_Controller::SignupAction()
function SignupAction($data, $form) {
68
69
70 $member = new Member();
71 $form->saveInto($member);
.....
ここで何が起こっているのですか?
ありがとう