【问题标题】:Silverstripe: Member Profile - Update details on FrontendSilverstripe:会员资料 - 更新前端的详细信息
【发布时间】:2016-07-08 01:31:07
【问题描述】:

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

<?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();
    }
}

【问题讨论】:

    标签: php forms content-management-system silverstripe


    【解决方案1】:

    我的回答是需要一个开发/构建来包含静态允许的操作......这通常是适合我的。

    但我的主要答案是使用此模块来管理用户配置文件,它允许进行许多自定义,并会为您节省大量时间......

    https://github.com/silverstripe-australia/silverstripe-memberprofiles

    “在 CMS 中添加了一种称为“会员资料页面”的新页面类型。这允许您创建一个页面,允许用户注册和/或管理他们的个人资料。可以在“行为”中启用或禁用注册“标签。”

    【讨论】:

    • 谢谢。您能帮我在个人资料页面内容设置中的“gridfield”中添加其他字段吗?我想在前端显示电话号码和地址(并允许用户更新它们)。 @巴里
    • 在使用上述模块时,这些都可以通过 gui 进行配置。
    • 谢谢。在看到这个回复之前,我真的想通了。对于任何想知道的人... 单击 CMS 管理员中“成员配置文件”页面设置上的“配置文件”选项卡。如果您希望在会员资料上显示额外的字段,请创建“会员”类的扩展,运行开发/构建,它们就会显示在那里。
    猜你喜欢
    • 2022-08-21
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 1970-01-01
    • 2014-04-14
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多