Получить список групп пользователей внешнего интерфейса

Я попытался получить список со всеми группами пользователей внешнего интерфейса.

Я пробовал это:

    /**
 * Protected Variable FrontendUserGroupRepository wird mit NULL initialisiert.
 *
 * @var \ReRe\Rere\Domain\Repository\FrontendUserGroupRepository
 * @inject
 */
protected $FrontendUserGroupRepository = NULL;

а потом это

 $feUserGroups = $this->frontendUserGroupRepository->findAll();

Но список всегда пустой, даже если в базе 2 группы пользователей.

Обновить... я попробовал это как репозиторий

class FrontendUserGroupRepository extends \Typo3\CMS\Extbase\Domain\Repository\FrontendUserGroupRepository {

     // Example for repository wide settings
    public function initializeObject() {
        /** @var $defaultQuerySettings Tx_Extbase_Persistence_Typo3QuerySettings */
        $defaultQuerySettings = $this->objectManager->get('Tx_Extbase_Persistence_Typo3QuerySettings');
        // go for $defaultQuerySettings = $this->createQuery()->getQuerySettings(); if you want to make use of the TS persistence.storagePid with defaultQuerySettings(), see #51529 for details

        // don't add the pid constraint
        $defaultQuerySettings->setRespectStoragePage(FALSE);
        // don't add fields from enablecolumns constraint
        $defaultQuerySettings->setRespectEnableFields(FALSE);
        // don't add sys_language_uid constraint
        $defaultQuerySettings->setRespectSysLanguage(FALSE);
        $this->setDefaultQuerySettings($defaultQuerySettings);
    }

}

но я получил эту ошибку:

Не удалось проанализировать класс: Typo3\CMS\Extbase\Domain\Repository\FEUserGroupsRepositry может быть не загружен или нет автозагрузчика

Я добавил новую инъекцию зависимостей и переустановил модуль...


person Felix    schedule 06.01.2015    source источник


Ответы (1)


По умолчанию каждый репозиторий Extbase имеет флаг respectStoragePage, установленный в значение true, это означает, что группы пользователей должны быть размещены на странице, которая настроена как PID хранилища по умолчанию в ваших константах exts, в любом случае, как я видел, вы, вероятно, не вообще не включать.

В таком случае вам нужно создать собственный репозиторий, расширяющий FrontendUserGroupRepository, а затем инициализировать его без учета хранилища.

Это описано в официальной документации.

Редактировать: если вы расширяете какую-либо модель/репозиторий в своем построителе расширений, автоматически ограничиваете свое репо только объектами вашего типа, т.е. добавляя в сопоставление TS:

 recordType = Tx_Rere_FrontendUserGroup

Поэтому, если вы хотите получить доступ ко всем записям расширенной модели, просто полностью удалите recordType из ext_typoscript_setup.txt (не забудьте очистить системный кеш).

person biesior    schedule 06.01.2015
comment
@biesior: вы можете добавить информацию о том, что module.tx_myext используется для внутренних модулей. - person lorenz; 06.01.2015
comment
Я добавил свой новый код репозитория с исключением выше .. что происходит не так? - person Felix; 07.01.2015
comment
спасибо, или очень глупая ошибка копирования и вставки ... действительно глупо ... много времени в моем подвальном офисе - person Felix; 07.01.2015
comment
исправил код выше .. но проблема также существует. - person Felix; 07.01.2015
comment
ладно решил некоторые проблемы... но теперь у меня такая ошибка: Could not find class definition for name "ReRe\Rere\Domain\Model\FrontendUserGroup". This could be caused by a mis-spelling of the class name in the class definition. Понятно почему у меня это вылезло но как решить? - person Felix; 07.01.2015
comment
Создайте эту модель, расширив ее с помощью \TYPO3\CMS\Extbase\Domain\Model\FrontendUserGroup - person biesior; 07.01.2015
comment
Я создал модель ReRe\Rere\Domain\Model\FrontendUserGroupи расширил исходный модуль FrontendUsrGroup... и теперь в базе данных нет таблицы #1247602160: Table 'typo3.tx_rere_domain_model_frontendusergroup' doesn't exist (More information) Нужно ли мне также редактировать TypoScript?? - person Felix; 08.01.2015
comment
@Felix Некоторое время назад я описал вам разницу между расширением модели в Builder и созданием отношения. Проверьте эту подсказку для решения, в настоящее время я AFK - person biesior; 08.01.2015
comment
это верно. жаль забыл. Я сделал это, как показано на рисунке 3 stackoverflow. com/questions/27601254/ ... но возвращаемое значение равно NULL ... но в базе данных есть 2 записи :( - person Felix; 08.01.2015
comment
Я спросил, есть ли у вас код в каком-нибудь репозитории git, извините;) - person biesior; 08.01.2015