I'm trying to create a Page where Members can edit their own profile, but the form doesn't seem to be writing back to the member table.
function UserProfileForm()
{
//Get Current Member Info
$member = $this->CurrentMember();
//Create Form
$fields = new FieldSet(
new FieldGroup (
new HeaderField('Personal Information', 3),
new TextField('FirstName', 'First Name', $member->FirstName),
new TextField('Surname','Last Name', $member->Surname ),
new EmailField('Email','Email', $member->Email)
),
new FieldGroup (
new HeaderField('Company Information', 3),
new TextField('CompanyName','Company Name', $member->CompanyName),
new TextField('CompanyURL','Company Website', $member->CompanyURL),
new TextField('HomePhone','Company Phone', $member->HomePhone),
new TextField('Address','Address', $member->Address),
new TextField('AddressLine2','Address Line 2', $member->AddressLine2),
new TextField('City','City', $member->City),
new TextField('State','State or Province', $member->State),
new TextField('Country','Country', $member->Country)
)
);
$fields->push(new HiddenField("ID"));
$actions = new FieldSet(
new FormAction('ChangePersonalDetails', 'Update Profile')
);
// Create Validators
$validator = new RequiredFields('FirstName', 'LastName', 'Email');
return new Form($this, 'ContactForm', $fields, $actions, $validator);
}
function ChangePersonalDetails($data,$form)
{
$member = $this->CurrentMember();
$member->FirstName = $data['FirstName'];
$member->Surname = $data['LastName'];
$member->Email = $data['Email'];
$member->CompanyName = $data['ComapnyName'];
$member->CompanyURL = $data['CompanyURL'];
$member->HomePhone = $data['HomePhone'];
$member->Address = $data['Address'];
$member->AddressLine2 = $data['AddressLine2'];
$member->City = $data['City'];
$member->State = $data['State'];
$member->Country = $data['Country'];
$member->companyTypeList = $data['companyTypeList'];
$member->write();
Director::redirect(Director::baseURL(). $this->URLSegment);
}
Any Suggestions? The