0

ADLDS に対してユーザーを認証する認証サービスを実装しようとしています。ここまでは順調ですね。サービスの実装と有効化は問題ではありませんが、サービス内のリポジトリからいくつかの機能が必要です。

$usergroups = $this->adlds->getTypoGroups($this->login['uname']);
/** @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage */
$groupStorage = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Persistence\\ObjectStorage');
$objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
$plFrontendUserRepository = $objectManager->get('PLE\\PlBase\\Domain\\Repository\\PlFrontendUserRepository');
$languageGroupRepository = $objectManager->get('PLE\\PlBase\\Domain\\Repository\\LanguageGroupRepository');
foreach ($usergroups as $groupname) {
     $groupStorage->attach($languageGroupRepository->findByGroupTitle($groupname));
}

objectmanager を使用してリポジトリをインスタンス化しようとすると、「1203 行目の ..\Classes\Persistence\Generic\Storage\Typo3DbBackend.php の非オブジェクトでメンバ関数 versionOL() を呼び出す」というメッセージが表示されます

そして、私が使用しようとすると:

/**
 * languageGroupRepository
 * 
 * @var \PLE\PlBase\Domain\Repository\LanguageGroupRepository
 * @inject
 */
protected $languageGroupRepository;

/**
 * plFrontendUserRepository
 *
 * @var \PLE\PlBase\Domain\Repository\PlFrontendUserRepository
 * @inject
 */
protected $plFrontendUserRepository;

そして、「$this->repository」で2つのリポジトリを使用すると、「オブジェクト以外のメンバー関数findByGroupTitle()への呼び出し」(リポジトリの機能)が得られるため、注入は失敗します。インジェクション関数を実装しようとしましたが、まったく機能しません。

何か案は?

4

0 に答える 0