Вземете списък с TYPO3 FE_User Group

Как мога да получа списък с всички мои фронтенд потребителски групи?

Опитах това:

/**
 * feUserGroupRepository
 *
 * @var \TYPO3\CMS\Extbase\Domain\Repository\FrontendUserGroupRepository
 * @inject
 */
protected $feUserGroupRepository = NULL;`

и след това това:

$usergroups = $this->feUserGroupRepository->findAll();

Получих тази грешка: Извикване на членска функция findAll() на не-обект

И пробвах така:

/**
 * @var \TYPO3\CMS\Extbase\Domain\Repository\FrontendUserGroupRepository $feUserGroupRepository
 */
  $feUserGroupRepository = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Domain\\Repository\\FrontendUserGroupRepository');
  $allUsers = $feUserGroupRepository->findAll();`

изобщо не работи. Получих това съобщение за грешка

Фатална грешка за улавяне на PHP: Аргумент 1 е предаден на

TYPO3\CMS\Extbase\Persistence\Repository::__construct() must implement interface
TYPO3\CMS\Extbase\Object\ObjectManagerInterface, none given, called in
C:\xampp\htdocs\typo3\typo3\sysext\core\Classes\Utility\GeneralUtility.php on 
line 4431 and
defined in C:\xampp\htdocs\typo3\typo3\sysext\extbase\Classes\Persistence\Repository.php

Как мога да получа списък с всички feusergroups?

Тип Rcord? въведете описание на изображението тук


person Felix    schedule 24.12.2014    source източник
comment
Моля, първо подобрете форматирането си.   -  person lorenz    schedule 24.12.2014


Отговори (1)


Грешката показва, че инжектирането на зависимост не е работило. Моля, уверете се, че изчиствате системния кеш след извършване на промени, които са кеширани в базата данни, какъвто е случаят с промените на имената на класовете или промените, които изискват повторно изграждане на зависимости.

Можете да изчистите системния кеш в инструмента за инсталиране („Важни действия“) или директно в бекенда, ако изпълнявате TYPO3 в контекст на разработка. „Прочистване на общите кешове“ не (!) изчиства системните кешове, базирани на база данни.

В зависимост от версията на TYPO3, която използвате, ще трябва да зададете типа на записа на вашите Frontend Usergroups (колона „tx_extbase_type“) на FrontendUserGroup.

Не се препоръчва използването на makeInstance за генериране на екземпляр на хранилище. Трябва да използвате инжектиране на зависимости, където е възможно (в този случай е), или, когато не е възможно, ObjectManager.

person lorenz    schedule 29.12.2014
comment
Да тогава трябва ли това да е достатъчно или? /** * feUserGroupRepository * * @var \TYPO3\CMS\Extbase\Domain\Repository\FrontendUserGroupRepository * @inject */ protected $feUserGroupRepository = NULL;` и след това това: $usergroups = $this-›feUserGroupRepository-›findAll() ; Опитах го на чиста система, но изобщо не работи ... не получавам никаква група - person Felix; 29.12.2014
comment
Но вече не получавате грешка? Така че проблемът ви е, че типът запис не е зададен, вижте подсказката за това в моя отговор. - person lorenz; 29.12.2014
comment
Актуализирах моя въпрос и добавих екранна снимка. Още вчера поставих рекорда, нищо не се е променило. - person Felix; 29.12.2014