You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

扩展TYPO3 femanager遇属性映射异常,求解决方案

解决femanager扩展属性映射异常问题

错误信息

属性路径处属性映射异常:在类型为In2code\Femanager\Domain\Model\User的目标对象中未找到属性propertyname

问题分析

出现该错误的核心原因是Extbase仍在使用femanager原生的User模型类,而非自定义的FrontendUser类,导致无法识别新增的propertyname属性。以下是针对性解决步骤:


1. 修正类映射配置(classes.php)

原配置的subclasses格式错误,需为原生User类明确指定记录类型与自定义子类的关联:

return [
    \In2code\Femanager\Domain\Model\User::class => [
        'subclasses' => [
            // 将默认记录类型0绑定到自定义子类
            '0' => \TYP\TypCfg\Domain\Model\FrontendUser::class
        ]
    ],
    \TYP\TypCfg\Domain\Model\FrontendUser::class => [
        'tableName' => 'fe_users',
        'recordType' => 0,
    ]
];

2. 指定femanager使用自定义模型

在扩展的ext_typoscript_setup.txt中添加配置,强制新建用户功能使用自定义模型:

plugin.tx_femanager {
    settings {
        new {
            model = \TYP\TypCfg\Domain\Model\FrontendUser
        }
    }
}

3. 完善自定义控制器实现

确保NewController正确继承femanager控制器,并明确绑定自定义模型:

<?php
namespace TYP\TypCfg\Controller;

use TYP\TypCfg\Domain\Model\FrontendUser;
use In2code\Femanager\Controller\NewController as FemanagerNewController;

class NewController extends FemanagerNewController
{
    protected function initializeCreateAction()
    {
        parent::initializeCreateAction();
        $this->arguments['user']->setDataType(FrontendUser::class);
    }

    public function createAction(FrontendUser $user)
    {
        parent::createAction($user);
    }
}

4. 配置表单字段与TCA

  • 在Configuration/TCA/Overrides/fe_users.php中添加字段配置:
<?php
defined('TYPO3') or die();

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns(
    'fe_users',
    [
        'propertyname' => [
            'label' => 'LLL:EXT:typcfg/Resources/Private/Language/locallang_db.xlf:fe_users.propertyname',
            'config' => [
                'type' => 'input',
                'size' => 30,
                'eval' => 'trim'
            ]
        ]
    ]
);

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
    'fe_users',
    'propertyname',
    '',
    'after:email'
);
  • 在TypoScript中启用表单字段:
plugin.tx_femanager.settings.new.fields.propertyname {
    enabled = 1
    label = LLL:EXT:typcfg/Resources/Private/Language/locallang.xlf:propertyname
}

5. 清空TYPO3全部缓存

务必清空所有缓存(类缓存、配置缓存、页面缓存等),确保新配置和类映射生效。


内容的提问来源于stack exchange,提问作者Himanshu Gidhvani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 17:50:36