如何使用 femanager (TYPO3) 进行更新?

问题描述

我正在处理一个项目,我的任务是:设置一个页面来编辑我的用户帐户信息。为此,我必须使用 TYPO3 扩展 femanager。

我安装了扩展并将插件放在我的页面上。我有 4 个显示的字段(照片、电话号码和电子邮件)。但是当我提交表单时,出现此错误:

参数 2 传递给 In2code\Femanager\Utility\FrontendUtility::forceValues() 必须是 类型数组,给定 null,调用 /home/dev/rta/htdocs/typo3conf/ext/femanager/Classes/Controller/EditController.php 在第 69 行

我试图在互联网上寻找有类似问题的人,但找不到任何东西。我查看了代码,但由于它是基本扩展代码,我认为这不是问题的来源。用户存储在我的数据库中的 fe_users 表中,并且这些字段很好地预先填充了我现有的数据。

我在 3 周前刚刚学习了 TYPO3,所以我有很多差距,我还不是很熟悉。

如果有帮助,这里是我的 EditController.php(第 66 到 79 行):

public function updateAction(User $user)
    {
        $this->redirectIfDirtyObject($user);
        $user = FrontendUtility::forceValues($user,$this->config['edit.']['forceValues.']['beforeAnyConfirmation.']);
        $this->emailForUsername($user);
        UserUtility::convertPassword($user,$this->settings['edit']['misc']['passwordSave']);
        $this->signalSlotDispatcher->dispatch(__CLASS__,__FUNCTION__ . 'BeforePersist',[$user,$this]);
        if (!empty($this->settings['edit']['confirmByAdmin'])) {
            $this->updateRequest($user);
        } else {
            $this->updateAllConfirmed($user);
        }
        $this->redirect('edit');
    }

这是我的 FrontendUtility 类(在第 69 行的 EditController 中使用):

public static function forceValues(User $user,array $settings)
    {
        foreach ((array)$settings as $field => $config) {
            $config = null;
            if (stristr($field,'.')) {
                continue;
            }
            // value to set
            $value = self::getContentObject()->cObjGetSingle($settings[$field],$settings[$field . '.']);
            if ($field === 'usergroup') {
                // need objectstorage for usergroup field
                $user->removeAllUsergroups();
                $values = GeneralUtility::trimExplode(',',$value,true);
                $userGroupRepository = self::getUserGroupRepository();

                foreach ($values as $usergroupUid) {
                    /** @var UserGroup $usergroup */
                    $usergroup = $userGroupRepository->findByUid($usergroupUid);
                    $user->addUsergroup($usergroup);
                }
            } else {
                // set value
                if (method_exists($user,'set' . ucfirst($field))) {
                    $user->{'set' . ucfirst($field)}($value);
                }
            }
        }
        return $user;
    }

如果有人有想法,我很感兴趣!

PS:我使用 TYPO3 v9.5.8

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...