【问题标题】:TYPO3 create frontend userTYPO3 创建前端用户
【发布时间】:2019-03-23 13:05:08
【问题描述】:

在我的服务类中,我有

/**
 * @var \TYPO3\CMS\Extbase\Domain\Repository\FrontendUserRepository
 * @inject
 */
protected $frontendUserRepository;

/**
 * @var \TYPO3\CMS\Extbase\Persistence\Generic\PersistenceManager
 * @inject
 */
protected $persistenceManager;

在一个函数中:

$objectManager = GeneralUtility::makeInstance('TYPO3\CMS\Extbase\Object\ObjectManager');
$this->frontendUserRepository = $objectManager->get('TYPO3\\CMS\\Extbase\\Domain\\Repository\\FrontendUserRepository');
$frontendUser = new FrontendUser();
$frontendUser->setUsername($bla);
$frontendUser->setPassword($bliep);
$this->frontendUserRepository->add($frontendUser);
$this->persistenceManager = $objectManager->get('TYPO3\\CMS\\Extbase\\Persistence\\Generic\\PersistenceManager');
$this->persistenceManager->persistAll();

然后我得到错误

表 'dbname.tx_extbase_domain_model_frontenduser' 不存在

如何将新用户存储在“fe_users”表中?

【问题讨论】:

  • 我看到类似config.tx_extbase.persistence.classesTx_Extname_Domain_Model_Member.mapping.tableName=fe_users 但我没有模型?
  • 感谢您的指导。我想我需要一个映射模型,所以我现在决定使用 Doctrine-Dbal 插入查询直接插入新用户。
  • Extbase 有一个面向 FE 用户的模型。你可以使用它。
  • 但是,我不确定,看起来您需要制作自己的模型(扩展 FE-users 模型)才能进行映射。

标签: typo3 typo3-9.x


【解决方案1】:

在您的 TypoScript 设置 extbase 配置中进行表映射:

config.tx_extbase {
    persistence {
        classes {
            TYPO3\CMS\Extbase\Domain\Model\FrontendUser {
                mapping {
                    tableName = fe_users
                }
            }
        }
    }
}

【讨论】:

  • 我已经扩展了前端用户,但映射似乎在服务类中被忽略了。我想打字稿需要在那里加载。但是,我认为在尝试了一段时间后才使用 Doctrine。谢谢!
猜你喜欢
  • 2016-10-27
  • 1970-01-01
  • 1970-01-01
  • 2011-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-24
相关资源
最近更新 更多