Php Silverstripe:成员配置文件-更新前端的详细信息

Php Silverstripe:成员配置文件-更新前端的详细信息,php,forms,content-management-system,silverstripe,Php,Forms,Content Management System,Silverstripe,我试图允许用户从前端“仪表板”类型的页面更新其详细信息。我已经显示了表单,但是当我单击“更新详细信息”时,表单重定向到一个空白页面,并且字段没有更改。有人能给我指一下正确的方向吗 <?php class MemberProfile extends Page { private static $description = 'Page that displays the current user\'s profile'; function getCMSFields() {

我试图允许用户从前端“仪表板”类型的页面更新其详细信息。我已经显示了表单,但是当我单击“更新详细信息”时,表单重定向到一个空白页面,并且字段没有更改。有人能给我指一下正确的方向吗

<?php

class MemberProfile extends Page {
    private static $description = 'Page that displays the current user\'s profile';

    function getCMSFields() {
        $fields = parent::getCMSFields();

        // we don't want the Content editor for this page type
        $fields->removeFieldFromTab('Root.Main', 'Content');
        return $fields;
    }
}

class MemberProfile_Controller extends Page_Controller {

    private static $allowed_actions = array(
        'UpdateDetails'
    );

    public function UpdateDetails() {
        $form = Form::create(
            $this,
            __FUNCTION__,
            FieldList::create(
                TextField::create('FirstName','First name:')
                    ->setAttribute('value', Member::CurrentUser()->FirstName),
                TextField::create('Surname','Last name:')
                    ->setAttribute('value', Member::CurrentUser()->Surname)
            ),
            FieldList::create(
                FormAction::create('saveDetails','Update details')
            )
        );

        return $form;
    }

    public function saveDetails($data,$form) {
        $CurrentMember = Member::CurrentMember();
        $CurrentMember->FirstName = $data['FirstName'];
        $CurrentMember->Surname = $data['Surname'];
        $form->saveInto($CurrentMember);
        $CurrentMember->write();
        return $this->redirectBack();
    }
}

我的答案是需要一个开发/构建来包含允许的静态操作。。。这对我来说是正常的

然而,我的主要答案是使用此模块管理用户配置文件,它允许许多定制,并将为您节省大量时间


“CMS中添加了一种新的页面类型,称为“成员配置文件页面”。这允许您创建一个页面,允许用户注册和/或管理他们的配置文件。可以在“行为”选项卡中启用或禁用注册。”

谢谢。你能帮我在个人资料页面内容设置的“gridfield”中添加其他字段吗?我希望在前端显示电话号码和地址(并允许用户更新)@BarryThese在使用上述模块时都可以通过gui进行配置。谢谢。在我看到这个反应之前,我就知道了。对于任何想知道。。。单击CMS管理员中“会员档案”页面设置上的“档案”选项卡。如果希望在成员概要文件上显示额外的字段,请创建“member”类的扩展,运行dev/build,它们将显示在那里。