I currently have a form which is supposed to edit an existing member when it is run. However when I press submit, rather than running the function, it runs the default action defined in the form which is a non-existant page (www.urlbase.com/profile/ProfileForm). The code is here:
<?php
class ProfilePage extends Page {
}
class ProfilePage_Controller extends Page_Controller {
static $allowed_actions = array(
//'SubmitProfile',
'ProfileForm'
);
public function ProfileForm() {
$fields = new FieldList(
new TextField('FirstName', 'First Name'),
new EmailField('Email', 'E-mail'),
new CountryDropdownField('Country', 'Location', null, 'NZ')
);
$actions = new FieldList(
new FormAction('SubmitProfile', 'Submit')
);
//$validator = new RequiredFields('Name');
return new Form($this, 'ProfileForm', $fields, $actions);
}
public function SubmitProfile($data, $form) {
$member = currentUser();
$form->saveInto($member);
$member->write();
Controller::redirect('profile');
}
}
?>
It doesn't seem to recognise the SubmitProfile function... Can anyone tell me what I'm doing wrong here? Thanks in advance :)
Edit: *facepalm* Solved it. Was trying to use the currentUser function by itself, had to access the Member class first.